我如何在javascript中迭代JSON数组?

时间:2015-04-27 13:53:59

标签: javascript json

我有以下格式来自休息的json数据:

{
"status_code": 200, 
"data": {
"units": -1, 
"unit_reference_ts": null,
"tz_offset": -4,
"unit": "day", 
"countries": [{"country": "IN", "clicks": 12}]}, 
"status_txt": "OK"
}

我想访问国家/地区部分,需要以

等格式生成数据
{"IN":12, ......}

我不知道如何遍历javascript,JSON数组?请帮助我在最好和最好的方法之间感到困惑。最容易在整个JSON中工作吗?

我试过了:

 $.each(response.countries, function(key, value) {
 console.log(value.country + ": " + value.clicks);});

但它显示我的类型错误e未定义...

1 个答案:

答案 0 :(得分:1)

确保先解析你的JSON(var data = JSON.parse(json)),然后使用一个简单的循环:

var obj = {};
for (var i = 0, l = data.data.countries.length; i < l; i++) {
    var tmp = data.data.countries[i];
    obj[tmp.country] = tmp.clicks
}

console.log(obj); // { IN: 12, UK: 123 }

DEMO

由于(来自你的编辑)你正在使用jQuery,你可能需要这样做(请注意,如果你使用它的一个AJAX方法检索它,jQuery会自动解析JSON数据):

var obj = {};
$.each(response.data.countries, function(key, value) {
    obj[value.country] = value.clicks;
});

如果你想要一个字符串而不是一个对象,只需要JSON.stringify obj:

var json = JSON.stringify(obj);

DEMO