如何动态获取json的左侧数据

时间:2015-12-15 06:55:44

标签: javascript jquery json

我有一个类似

的json
{
"Payload":[{
    "PrevYr":"21333",
    "CurYr":"123454"
},{
    "PrevYr":"234333",
    "CurYr":"45546"
},{
    "PrevYr":"3563",
    "CurYr":"67854"
}]
}

现在在我的代码中,我使用

读取了这个json
  $.getJSON("readJson.json", function (data) {}

我需要读取json并创建另一个json并对其进行一些更改。但我无法阅读" CurYr"和" PrevYr"。我的意思不是他们的价值观但他们。因此,如果有2014年和2015年代替curyr和prevyr,我也可以得到它们。我需要阅读左侧。请帮忙..

3 个答案:

答案 0 :(得分:1)

尝试这样的事情,

    var test = {
"Payload":[{
    "PrevYr":"21333",
    "CurYr":"123454"
},{
    "PrevYr":"234333",
    "CurYr":"45546"
},{
    "PrevYr":"3563",
    "CurYr":"67854"
}]};

$.each(test.Payload,function(key,val){
        $.each(val,function(key1,val1){
        alert(key1);
    }); 
});

var keySet = Object.keys( test.Payload[0] );
 alert( keySet[0]);
 alert( keySet[1]);

答案 1 :(得分:0)

您可以使用Object.keys( obj );

$.getJSON("readJson.json", function (data) {

 console.log( Object.keys(data.Payload[0]));

}

答案 2 :(得分:0)

试试这个:

var obj = {
"Payload":[{
    "PrevYr":"21333",
    "CurYr":"123454"
},{
    "PrevYr":"234333",
    "CurYr":"45546"
},{
    "PrevYr":"3563",
    "CurYr":"67854"
}]
}

var objKeys = Object.keys(obj);

objKeys.forEach(function(key){
  // This returns "Payload"
  var _innerKeys = Object.keys(obj[key]);
  
  // This returns "0,1,2" since obj[key] is an array.
  _innerKeys.forEach(function(k){
    
    // This will return "PrevYr, CurYr"
    var _innerProp = Object.keys(obj[key][k]);
    console.log(_innerProp);
  })
  console.log("Inner Keys: ", _innerKeys);
})