如何从键/值JSON对象中提取键?

7

我将得到一些JSON数据需要循环输出其中的元素。问题是其中的这一部分结构不同。通常情况下,我会像这样循环遍历元素:

var json = $.parseJSON(data);
json[16].events.burstevents[i]

但是,由于下面的JSON是键值对,因此我无法提取仅unix时间戳。如何从下面的JSON中提取unix时间戳?(即1369353600000.0、1371600000000.0等)

{"16": {
    "events": {
      "burstevents": {
          "1369353600000.0": "maj", "1371600000000.0": "maj", "1373414400000.0": "maj", "1373500800000.0": "maj", "1373673600000.0": "maj"
        }, 
      "sentevents": {
          "1370736000000.0": "pos", "1370822400000.0": "pos", "1370908800000.0": "pos"
        }
     }
  }
}

1
$.map({"123": 345}, function(v, k){ return k;}) -> ['123'] - AdamKG
_.map({"123": 345}, function(v, k){ return k;}) -> ['123'] http://underscorejs.org/#map - Reactgular
3个回答

11
你可以使用 in 关键字遍历键。
var json = $.parseJSON(data);
var keys = array();
for(var key in json[16].events.burstevents)
{
    keys.push(key);
}

你可以使用jQuery来完成它

var json = $.parseJSON(data);
var keys = $.map(json[16].events.burstevents,function(v,k) { return k; });
你可以使用JavaScript对象。
var json = $.parseJSON(data);
var keys = Object.keys(json[16].events.burstevents);

2

试试这个

for(key in json["16"].events.burstevents)
{
    console.log(json["16"].events.burstevents[key]);
}

演示:http://jsfiddle.net/qfMLT/

1
作为替代方案,我们可以这样做:

var keys=[];
        var i=0;
        $.each(json, function(key, value) {
                console.log(key, value);
                keys[i++]=key;
        });

或者嵌套另一个.each以获取更多的键值对集合。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接