數據三:
{
"china":[
{"name":"hangzhou", "item":"1"},
{"name":"shanghai", "item":"2"},
{"name":"sichuan", "item":"3"}
],
"America":[
{"name":"aa", "item":"12"},
{"name":"bb", "item":"2"}
],
"Spain":[
{"name":"cc", "item":"1"},
{"name":"dd", "item":"23"},
{"name":"ee", "item":"3"}
]
};
上述代碼也是json數據的一種表現形式,而且該形式也是很常見的,最外層是一個對象,對象中鍵對應的值是一個數組。數組里面又包含json對象。在網絡請求這里,這樣的json數據也是很常見的,下面我們就來看一下如何解析這樣的json數據。
首先是通過for-in循環遍歷json數據value2,countryObj為value2對象的屬性名,value2[countryObj]為value2對象屬性值在這里它是一個數組,cityObj是數組的一個元素,如:china對應的值:
[
{"name":"hangzhou", "item":"1"},
{"name":"shanghai", "item":"2"},
{"name":"sichuan", "item":"3"}
],
就是一個數組,其中{"name":"hangzhou", "item":"1"},也是一個json數據。于是,value2[countryObj][cityObj]["name"]就訪問到該對象的name的屬性值,也可以通過value2[countryObj][cityObj].name來訪問該屬性值。在這里將json解析的數據顯示在頁面上。
對于這種數據類型,我們還可以采用另外一種方式解析
for (var countryObj in value2)
{
document.write(countryObj + ":
")
//document.write("? " + value2[countryObj].length);
for (var i = 0;i < value2[countryObj].length; i++)
{
document.write("? " + value2[countryObj][i]["name"] + "
");
}
}
顯示的結果: