如何阅读多级json

时间:2016-02-03 16:37:01

标签: javascript json

所以,我知道如何阅读“单级”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数据。

我应该怎么做?

2 个答案:

答案 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
相关问题