2014-10-31 49 views
-1

我有follwing JSON:JavaScript腳本複雜JSON

{ 
    "_id":"9876567833", 
    "result":{ 
     "Mercedes":[ 
     { 
      "category_name":"Car" 
     }, 
     { 
      "category_name":"Fast" 
     } 
     ], 
     "BMW":[ 
     { 
      "category_name":"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

你想如何看待數組? – 2014-10-31 14:47:04

+0

我想在categoArray:汽車」, 「快」, 「汽車」 – Jose 2014-10-31 14:48:11

+0

@chridam你是對的,只是編輯,感謝 – Jose 2014-10-31 14:50:56

回答

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

仍然有一個錯誤TypeError:無法讀取未定義的屬性'category_name' – Jose 2014-10-31 14:58:49

0

categories[i].result[idx]返回一個數組,而不是一個對象。因此,categories[i].result[idx].category_name將爲undefined

+0

是:(TypeError:無法讀取屬性'category_name'undefined – Jose 2014-10-31 15:01:39