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”