我有以下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
我的问题要复杂得多
感谢您的帮助!
答案 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
。