Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在javascript中迭代JSON数组?_Javascript_Json - Fatal编程技术网

如何在javascript中迭代JSON数组?

如何在javascript中迭代JSON数组?,javascript,json,Javascript,Json,我有一个来自rest的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, ......} 我不知道如何迭

我有一个来自rest的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未定义…

请确保首先解析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 }
如果您想要字符串而不是对象,只需
JSON.stringify
obj:

var json = JSON.stringify(obj);

可能重复的是JSON,还是一个对象,有区别吗?可能重复的JSON数据通过url请求
var json = JSON.stringify(obj);