7

我得到了一些我需要循环输出元素的 JSON。问题是它的这一部分结构不同。通常我会像这样循环遍历元素:

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

但是我不能用下面的 JSON 来做到这一点,因为它们是键值对。如何从下面的 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"
        }
     }
  }
}
4

3 回答 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);
于 2013-08-06T12:46:02.623 回答
2

试试这个

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

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

于 2013-08-06T12:51:51.440 回答
1

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

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

或者可能嵌套另一个.each以获得更多键值对。

于 2015-10-12T13:37:13.803 回答