JavaScript解析复杂JSON

JavaScript解析复杂JSON,javascript,json,parsing,Javascript,Json,Parsing,我有以下建议: { "_id":"9876567833", "result":{ "Mercedes":[ { "category_name":"Car" }, { "category_name":"Fast" } ], "BMW":[ { "category_

我有以下建议:

{  
   "_id":"9876567833",
   "result":{  
      "Mercedes":[  
         {  
            "category_name":"Car"
         },
         {  
            "category_name":"Fast"
         }
      ],
      "BMW":[  
         {  
            "category_name":"Car"
         }
      ]
   }
我不知道在梅赛德斯或宝马之前它可能会改变,这只是一个例子。 我需要一辆车,快,车

JSON是分类的 所以我试着:

    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);
          }
         }
       }
但它不起作用

[编辑]不一样:

我的问题要复杂得多


谢谢你的帮助

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

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);
        }
    }
}

类别[i]。结果[idx]返回数组,而不是对象。因此,categories[i].result[idx].categories\u name将是未定义的。

您希望数组的外观如何?我希望在categarray中有:Car,Fast,Car@chridam您是对的,刚刚编辑过,谢谢您正在测试类别[i].result[idx].length,我认为您这样做是因为类别[i].result[idx]是一个数组。那你为什么要访问类别[i].result[idx].category\u name?数组没有这样的属性。问题是我希望category\u name中的东西:比如Car,Fast,Car仍然有一个错误TypeError:无法读取未定义的属性“category\u name”:TypeError:无法读取未定义的属性“category\u name”