Key value pairs using JSON

后端 未结 4 2029
一向
一向 2020-12-23 22:41

Is there a way to handle data structures using JSON object in a way of Key/ Value pairs?
If so can some one elaborate how to access associated value object from the key

相关标签:
4条回答
  • 2020-12-23 23:08

    JSON (= JavaScript Object Notation), is a lightweight and fast mechanism to convert Javascript objects into a string and vice versa.

    Since Javascripts objects consists of key/value pairs its very easy to use and access JSON that way.

    So if we have an object:

    var myObj = {
        foo:   'bar',
        base:  'ball',
        deep:  {
           java:  'script'
        }
    };
    

    We can convert that into a string by calling window.JSON.stringify(myObj); with the result of "{"foo":"bar","base":"ball","deep":{"java":"script"}}".

    The other way around, we would call window.JSON.parse("a json string like the above");.

    JSON.parse() returns a javascript object/array on success.

    alert(myObj.deep.java);  // 'script'
    

    window.JSON is not natively available in all browser. Some "older" browser need a little javascript plugin which offers the above mentioned functionality. Check http://www.json.org for further information.

    0 讨论(0)
  • 2020-12-23 23:10

    A "JSON object" is actually an oxymoron. JSON is a text format describing an object, not an actual object, so data can either be in the form of JSON, or deserialised into an object.

    The JSON for that would look like this:

    {"KEY1":{"NAME":"XXXXXX","VALUE":100},"KEY2":{"NAME":"YYYYYYY","VALUE":200},"KEY3":{"NAME":"ZZZZZZZ","VALUE":500}}
    

    Once you have parsed the JSON into a Javascript object (called data in the code below), you can for example access the object for KEY2 and it's properties like this:

    var obj = data.KEY2;
    alert(obj.NAME);
    alert(obj.VALUE);
    

    If you have the key as a string, you can use index notation:

    var key = 'KEY3';
    var obj = data[key];
    
    0 讨论(0)
  • 2020-12-23 23:17
    var object = {
        key1 : {
            name : 'xxxxxx',
            value : '100.0'
        },
        key2 : {
            name : 'yyyyyyy',
            value : '200.0'
        },
        key3 : {
            name : 'zzzzzz',
            value : '500.0'
        },
    }
    

    If thats how your object looks and you want to loop each name and value then I would try and do something like.

    $.each(object,function(key,innerjson){
        /*
            key would be key1,key2,key3
            innerjson would be the name and value **
        */
    
        //Alerts and logging of the variable.
        console.log(innerjson); //should show you the value    
        alert(innerjson.name); //Should say xxxxxx,yyyyyy,zzzzzzz
    });
    
    0 讨论(0)
  • 2020-12-23 23:28

    I see what you are trying to ask and I think this is the simplest answer to what you are looking for, given you might not know how many key pairs your are being sent.

    Simple Key Pair JSON structure

    var data = {
        'XXXXXX' : '100.0',
        'YYYYYYY' : '200.0',
        'ZZZZZZZ' : '500.0',
    }
    

    Usage JavaScript code to access the key pairs

    for (var key in data) 
      { if (!data.hasOwnProperty(key))
        { continue; } 
        console.log(key + ' -> ' +  data[key]);
      };
    

    Console output should look like this

    XXXXXX -> 100.0 
    YYYYYYY -> 200.0 
    ZZZZZZZ -> 500.0
    

    Here is a JSFiddle to show how it works.

    0 讨论(0)
提交回复
热议问题