所以,我知道如何阅读“单级”json数组。但是,我无法弄清楚如何从多级json数组索引我想要的值。
我有这个JSON数据:
{
"items": [
{
"snippet": {
"title": "YouTube Developers Live: Embedded Web Player Customization"
}
}
]
}
我想访问title的值,但是这些都不能访问该值,而是返回undefined:
console.log(data["items"][0].title);
或:
console.log(data["items"][0]["title"]);
但是,此代码返回snippet
对象:
console.log(data["items"][0]);
data
变量引用json数据。
我应该怎么做?
答案 0 :(得分:5)
试试这个:
data.items[0].snippet.title
解释(您可以在/* */
评论中看到相应的对象):
items[0];
/*
{
'snippet': {
'title': 'YouTube Developers Live: Embedded Web Player Customization'
}
}
*/
items[0].snippet;
/*
{
'title': 'YouTube Developers Live: Embedded Web Player Customization'
}
*/
items[0].snippet.title;
/*
'YouTube Developers Live: Embedded Web Player Customization'
*/
答案 1 :(得分:1)
除了madox2的答案之外,还有一个解释:
{
"items": [
{
"snippet": {
"title": "YouTube Developers Live: Embedded Web Player Customization"
}
}
]
}
root是一个Object,而items
是一个数组。对象用花括号括起来,而数组则用sqare括号包围。
在JS中,您可以像这样访问一个Object:
parent.child
在您的情况下,假设您将数据分配给名为data
的变量,您可以使用变量名称和要获取的对象来访问它:
data.items
数组有键 - 如果没有指定键,键将是基于数字的。
因此,看到items
是没有指定任何键的数组,您必须访问第x个元素。 x
在你的情况下是0,因为它是数组的第一项(记住,数组是零索引的):
data.items[0]
在这里你又有了一个对象,所以访问它:
data.items[0].snippet.title