gpt4 book ai didi

javascript - 通过对象属性访问 JSON 数组

转载 作者:行者123 更新时间:2023-11-29 15:38:11 24 4
gpt4 key购买 nike

假设我有下一个 JSON 文件:

{
"shows": [
{
"name": "House of cards",
"rating": 8
},
{
"name": "Breaking bad",
"rating": 10
}
]
}

我想通过节目名称访问节目的评级。像这样:

var rating = data.shows["House of cards"].rating;

这可能吗?或者类似的东西?多谢!

最佳答案

仅通过反序列化该 JSON 样本,您将无法获得此类哈希式访问权限。

也许您可以重新制定数据序列化为 JSON 的方式,甚至可以在节目中使用对象字面量:

{
"shows": {
"House of cards": {
"rating": 8
}
}
}

而且您仍然可以使用 Object.keys(...) 获取一组显示键:

Object.keys(x.shows);

或者您甚至可以在反序列化该 JSON 后更改结构:

var x = { shows: {} };

for(var index in some.shows) {
x.shows[some.shows[index].name] = { rating: some.shows[index].rating };
}

// Accessing a show
var rating = x.shows["House of cards"].rating;

我建议您最好执行此转换并获得使用纯 JavaScript 访问您的节目的好处,而不是必须遍历整个节目数组才能找到一个。

当您使用对象字面量时,您访问的是字典/哈希表等属性,这在后台不使用任何搜索功能。

更新

OP 担心一旦它是关联数组/对象而不是常规数组时如何迭代显示:

Object.keys(shows).forEach(function(showTitle) {
// Do stuff here for each iteration
});

或者...

for(var showTitle in shows) {
// Do stuff here for each iteration
}

更新2

这是一个关于 jsFiddle 的工作示例:http://jsfiddle.net/dst4U/

关于javascript - 通过对象属性访问 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24465723/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com