javascript - 我如何在 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, ......}

我不知道如何遍历 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 }

DEMO

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

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

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

var json = JSON.stringify(obj);

DEMO

关于javascript - 我如何在 javascript 中遍历 JSON 数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29897757/

相关文章:

ios - 创建类对象时如何处理缺失值?

java - 如何解析二维json数组

javascript - javascript 函数 srcElement.nodeName 在 iOS5 中给出了错误的输出

javascript - 背景图像变暗的CSS动画过渡

php - 在 Javascript 循环中迭代 PHP 数组

javascript - 不使用Javascript将标题移动到div上方

javascript - 从 JSON 中的对象读取数据

json - Jolt 变换使用 NiFi 将 json 内容放入字段中

java - 测试我的 JSON 文件并在 java 中收到 "UnrecognizedPropertyException"错误

javascript - 忽略/取消 JavaScript 拖放的浏览器拖动