遍歷json獲得數據的幾種方法


Json在Web開發的用處非常廣泛,作為數據傳遞的載體,如何解析Json返回的數據是非常常用的。下面介紹下四種解析Json的方式:

Part 1

var list1 = [1,3,4];
alert(list1[1]);
var list2 = [{"name":"leamiko","xing":"lin"}];
alert(list2[0]["xing"])
alert(list2[0].xing)

Part 2

var value = {
    "china":{
        "hangzhou":{"item":"1"},
        "shanghai":{"item":"2"},
        "chengdu":{"item":"3"}
    },
    "America":{
        "aa":{"item":"1"},
        "bb":{"item":"2"}   
    },
    "Spain":{
        "dd":{"item":"1"},
        "ee":{"item":"2"},
        "ff":{"item":"3"}   
    }
};
 
for(var countryObj in value)
{
    document.write(countryObj + ":<br />")
    //沒用的for(var cityObj in value.countryObj)
    for(var cityObj in value[countryObj])
    {
        document.write('    ' + cityObj + "<br />");
        for(var itemObj in value[countryObj][cityObj])
        {
            document.write("      "+ itemObj + value[countryObj][cityObj][itemObj] +"<br />")   
        }
    }   
}  

解釋:

countryObj 為value對象的一個屬性明,value[countryObj] 為value對象的屬性值 這里為一個json對象比如b,value[countryObj][cityObj]為josn對象b的屬性值 它也是一個json對象,於是 value[countryObj][cityObj]["item"]便可以取到json對象暫時成為c的值,或者 value[countryObj][cityObj].item。

總之分清是json還是array這是很關鍵的。

Part 3

var value2 = {
    "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"}
    ]
};
for (var countryObj in value2) { document.write(countryObj + ":<br />") for (var cityObj in value2[countryObj]) { //可以用document.write(" " + value2[countryObj][cityObj].item + "<br />"); document.write(cityObj + " " + value2[countryObj][cityObj]["name"] + "<br />" ); } }

解釋:

countryObj 為value2對象的屬性名,value2[countryObj] 為value2對象屬性值 在本例中它是一個數組,cityObj 是數組的一個元素,它又是另外一個json對象,於是,value2[countryObj][cityObj]["name"]就訪問到該對象的 name的屬性值,也可以通過 value2[countryObj][cityObj].name 來訪問該屬性值。

Part 4

var value2 = {
    "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"}
    ]
};
   
    for (var countryObj in value2)
    {
        document.write(countryObj + ":<br />")   
        //document.write("  " + value2[countryObj].length);
        for (var i = 0;i < value2[countryObj].length; i++)
        {
            document.write("  " + value2[countryObj][i]["name"] + "<br />");   
        }
    }

解釋:

countryObj value2對象的屬性名,value2[countryObj] 屬性值 本例中是一個數組,value2[countryObj].length 數組的長度,value2[countryObj][i]數組的項 == json對象。

value2[countryObj][i]["name"] 取得name的值,也可以用value2[countryObj][i].name 來取得name的值。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM