JavaScript解析复杂的JSON

时间:2014-10-31 14:44:18

标签: javascript json parsing

我有以下JSON:

{  
   "_id":"9876567833",
   "result":{  
      "Mercedes":[  
         {  
            "category_name":"Car"
         },
         {  
            "category_name":"Fast"
         }
      ],
      "BMW":[  
         {  
            "category_name":"Car"
         }
      ]
   }

我以前不知道" Mercedes"或"宝马" (它可能会改变,这仅仅是为了这个例子)。 我需要得到" Car"," Fast"," Car"。

JSON位于categories 所以我试过了:

    var categoArray = [];
    for(var i =0; i < categories.length; i++){
        for (var idx in categories[i].result) {
               if (categories[i].result[idx].length > 0){
                   categoArray.push(categories[i].result[idx].category_name);
          }
         }
       }

但它没有用。

[编辑]不一样:Access / process (nested) objects, arrays or JSON

我的问题要复杂得多

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

你很接近,但还需要1个循环:

var categoArray = [];
for (var i = 0; i < categories.length; i++) {
    for (var key in categories[i].result) {
        for (var j = 0; j < categories[i].result[key].length; j++) {
            categoArray.push(categories[i].result[key][j].category_name);
        }
    }
}

答案 1 :(得分:0)

categories[i].result[idx]返回一个数组,而不是一个对象。因此,categories[i].result[idx].category_name将为undefined