我正在获得一些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"
}
}
}
}
答案 0 :(得分: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);
答案 1 :(得分:2)
试试这个
for(key in json["16"].events.burstevents)
{
console.log(json["16"].events.burstevents[key]);
}
答案 2 :(得分:1)
作为替代方案,我们可以这样做:
var keys=[];
var i=0;
$.each(json, function(key, value) {
console.log(key, value);
keys[i++]=key;
});
或者可以嵌套另一个.each
以获得更多的键值对。