2017-05-05 86 views
0

我創建了一個JSON對象,它有兩個數組。我在網上搜索瞭如何提取數據,但是我嘗試過的所有代碼都返回了「未定義」或者[對象對象]。通過多維JSON數組循環並獲取javascript中的值

你能看看我的例子,告訴我我該怎麼做?

<html> 
<head> 
    <title> New Document </title> 
    <meta name="Generator" content="NPP-Plugin"> 
    <meta name="Author" content=""> 
    <meta name="Keywords" content=""> 
    <meta name="Description" content=""> 
</head> 
<body> 
<div id="file"></div> 
<div id="applicID"></div> 
    <script type="text/javascript"> 
var IETMObj = { 
    "allItems": [{ 
     "sFile": "Test.html", 
     "Applicability": [{ // second dimension 
          "ApplicID": "subj_1", 
          "ApplicDisp": "Driving", 
          "Condition": "In rain" 
        },{ 
          "ApplicID": "subj_2", 
          "ApplicDisp": "Running", 
          "Condition": "Uphill" 
        }] 
      }] 
    }; 

    for (var i = 0; i < IETMObj.length; i++){ 
     document.write("<br><br>array index: " + i); 
    var obj = IETMObj[i]; 
    for (var key in obj){ 
    var value = obj[key]; 
    document.write("<br> - " + key + ": " + value); 
    } 
} 


    </script> 
</body> 
</html> 
+0

'IETMObj'是一個對象,而不是一個數組。 – Barmar

+0

你想要處理的數組是'IETMObj.allItems [0] .Applicability' – Barmar

+0

@Barmar恐怕我無法讓你的代碼工作更正。 http://js.do/MHammett/multidimensionalobj我看了其他問題,並嘗試了他們的解決方案。他們沒有在我的情況下工作。這就是爲什麼我伸出援手。 –

回答

0

ITEMObj是一個對象,而不是一個數組。你想要循環的數組是IETMObj.allItems[0].Applicability

var applicability = IETMObj.allItems[0].Applicability; 
for (var i = 0; i < applicability.length; i++) { 
    document.write("<br><br>array index: " + i); 
    var obj = applicability[i]; 
    for (var key in obj){ 
     var value = obj[key]; 
     document.write("<br> - " + key + ": " + value); 
    } 
} 

如果有可以allItems不止一個項目,你應該對他們有一個外循環。