通过 JSON 树获取值,然后打印到控制台.log

going through JSON tree to get values then print to console.log

本文关键字:打印 控制台 log 然后 JSON 获取 通过      更新时间:2023-09-26

我有一些示例 JSON...

{
 "colors": {
        "1": {
            "name": "red", 
            "rgb_value": "255,0,0"
        }, 
        "2": {
            "name": "green", 
            "rgb_value": "0,255,0"
        }, 
        "3": {
            "name": "blue", 
            "rgb_value": "0,0,255"
        }
    }
}

问题:我想知道如何进入"颜色"然后检查每个对象("1"、"2"、"3"......等)并获取每个"名称"的值(我想使用 console.log 将每个打印到控制台)。我该怎么做?

Javascript/jQuery解决方案都受到赞赏。

请注意,我无法更改 JSON,因为我是从某人的 API 中获取它并且无权重新构建他们的 JSON,因此如果您认为 JSON 不正确,请忽略它,因为我别无他法。

您可以使用

$.each()循环访问对象的colors并获取name值:

$.each(obj.colors, function(i, val) {
    console.log(obj.colors[i].name);
});

小提琴演示

假设您已经解析了 JSON,一个简单的循环就足够了:

for (var k in obj.colors) {
  console.log(obj.colors[k].name);
}

小提琴

JS中的另一种解决方案。 Object.keys(obj.colors)返回["1","2","3"]forEach()循环遍历obj.colors["1"]obj.colors["2"]obj.colors["3"]记录每个name的值。

Object.keys(obj.colors).forEach(function (key) {
    console.log(obj.colors[key].name);
});

我认为这会对你有所帮助。 假设您的对象名称是 数据

var data = {
    "colors": {
        "1": {
            "name": "red", 
            "rgb_value": "255,0,0"
        }, 
        "2": {
            "name": "green", 
            "rgb_value": "0,255,0"
        }, 
        "3": {
            "name": "blue", 
            "rgb_value": "0,0,255"
        }
    }
}
for (key in data["colors"]) {
  console.log(data["colors"][key]["name"])
}

这次它现在可以工作了,您可以在JavaScript控制台中复制并粘贴并查看结果