2017-01-16 101 views
1

我重新啓動了主題:嵌套的JSON不能讀取屬性

我有點笨。問題是我向你展示了一些來自JSON的機密文檔。 JSON嵌套像這樣:

"01": { 
    "titel": "json", 
    "a1": 001, 
    "a2": { 
     "b1": 002, 
     "b2": 003, 
     "b3": "b3" 
    }, 
    "a3": { 
     "c1": "c1", 
     "c2": "c2", 
     "c3": 003, 
     "c4": 004, 
     "c5": 005, 
     "c6": { 
      "d1": 001, 
      "d2": 002, 
      "d3": 003 
     } 
    }, 
    "a4": { 
     "e1": "e1", 
     "e2": "e2", 
     "e3": 003, 
     "e4": 004, 
     "e5": null, 
     "f1": { 
      "g1": 001, 
      "g2": 002, 
      "g3": 003 
     } 
    }, 
    "a5": [ 
     { 
      "h1": "h2", 
      "h2": 002, 
      "h3": 003, 
      "h4": 004, 
      "h5": 005, 
      "h6": 006, 
      "h7": 007, 
      "h8": 008, 
      "h9": 009, 
      "h10": 010, 
      "h11": -011, 
      "h12": -012, 
      "h13": -013 
     } 
    ], 
    "metaInfo": { 
     "erstellt": "2016-12-20T10:54:14.459+0000", 
     "version": "1" 
    } 
}, 

我從「01」到「18」中有18個這樣的結構作爲對象名稱。在我上第二個日誌故障控制檯

$.getJSON('data.json', function(data) {   
console.log(data); 
console.log(data["01"].a5.h1[0]); 
}); 

:所以我從一開始就從一個簡單的代碼,這樣的「遺漏的類型錯誤:無法讀取屬性未定義‘A5’」。第一個console.log正確顯示了JSON。

那麼我的失敗在哪裏?

+0

什麼/哪裏出了問題? – Dekel

+1

那個JSON對象不是一個數組;它不會有'.length'。 – Pointy

+0

「我的代碼不起作用」。怎麼樣?出了什麼問題?是否報告錯誤? *什麼都會發生? – Pointy

回答

1

您正在使用錯誤的循環,你應該這樣做

for(key in data){do something} 
0

這裏是如何通過對象鍵值循環。現在你可以在創建表的時候實現它。

function drawTable(data) { 
       for (var key in data) { 
       alert("property "+key+ " is " + data[key]); 
    } 
    } 

如果你想僅在非空elemens那就試試這個

function drawTable(data) { 
     for (var key in data) { 
      if (data.hasOwnProperty(key)&& data[key]!==null){ 

      alert("property "+key+ " is " + data[key]); 
    } 
    } 
}