如何访问JSON对象中的对象数组?

时间:2015-10-25 19:55:40

标签: javascript jquery arrays json

如何访问位于数组中的对象,该数组本身位于JSON对象中?

JSON结构:

{
    "name":"animals",
    "type":"farmyard",
    "version": "1.0",

    "items": [{
        {
            "name": "pig",
            "description": "pink, round"
        },

        {
            "name": "chicken",
            "description": "small, yellow"
        }
    }]

}

到目前为止,这是JS ......

    $.getJSON( "https://_LINK_TO_JSON.json", function( data ) {

      var farm = [];
      var animals = [];

      $.each( data, function( key, val ) {

        farm.push(key, val);

        var animals = farm[3];
        console.dir(animals);

      });

      console.dir(animals);

    });

我尝试使用farm.items来定位数组,但这不起作用,所以我使用了索引号。

(当然,使用farm.items[1].name来定位名字也不起作用。)

我不能仅仅使用点符号来解决JSON keysvalues在引号内的事实吗? (我实际上无法编辑JSON提要,因为它是外部的。)

如何简单地定位嵌套数组并获取我想要的项目及其属性?

2 个答案:

答案 0 :(得分:2)

您的JSON结构中存在错误。你的JSON必须是:

var data = {
    'name':'animals',
    'type':'farmyard',
    'version': '1.0',

    'items': [
        {
            'name': 'pig',
            'description': 'pink, round'
        },

        {
            'name': 'chicken',
            'description': 'small, yellow'
        }
    ]

};

console.log(data.items);

试试这个http://jsfiddle.net/6uhp6y34/

答案 1 :(得分:1)

你可以使用jquery的$ eaach函数作为

$.getJSON (urltoJSON, function(data){
$.each(data.response.venue.items, function (index, value) {
    console.log(this.name);
    console.log(this.description);
 });
});

你也可以将json保存在javascript变量中并以

的形式迭代它
data= 'get ur  json'
for ( i in data.items ) {
   console.log ( i.name + "" )
   console.log ( i.description + "" );    
    }