收集json解析的四種方法分享
Json在Web開發(fā)的用處非常廣泛,作為數(shù)據(jù)傳遞的載體,如何解析Json返回的數(shù)據(jù)是非常常用的。下面介紹下四種解析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對(duì)象的一個(gè)屬性明,value[countryObj] 為value對(duì)象的屬性值 這里為一個(gè)json對(duì)象比如b,value[countryObj][cityObj]為josn對(duì)象b的屬性值 它也是一個(gè)json對(duì)象,于是 value[countryObj][cityObj]["item"]便可以取到j(luò)son對(duì)象暫時(shí)成為c的值,或者 value[countryObj][cityObj].item。
總之分清是json還是array這是很關(guān)鍵的。
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對(duì)象的屬性名,value2[countryObj] 為value2對(duì)象屬性值 在本例中它是一個(gè)數(shù)組,cityObj 是數(shù)組的一個(gè)元素,它又是另外一個(gè)json對(duì)象,于是,value2[countryObj][cityObj]["name"]就訪問到該對(duì)象的 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對(duì)象的屬性名,value2[countryObj] 屬性值 本例中是一個(gè)數(shù)組,value2[countryObj].length 數(shù)組的長(zhǎng)度,value2[countryObj][i]數(shù)組的項(xiàng) == json對(duì)象。
value2[countryObj][i]["name"] 取得name的值,也可以用value2[countryObj][i].name 來取得name的值。
相關(guān)文章
javascript實(shí)現(xiàn)tab切換特效
這篇文章主要介紹了javascript實(shí)現(xiàn)tab切換特效,實(shí)現(xiàn)的方法很簡(jiǎn)單,特別適合初學(xué)者學(xué)習(xí)javascript實(shí)現(xiàn)tab切換特效,tab切換再也不是問題,需要的朋友可以參考下2015-11-11
javascript實(shí)現(xiàn)的顏色塊滑動(dòng)的動(dòng)態(tài)效果
javascript實(shí)現(xiàn)的顏色塊滑動(dòng)的動(dòng)態(tài)效果...2007-08-08
鴻蒙JS實(shí)戰(zhàn)之計(jì)算器功能開發(fā)實(shí)例
這篇文章主要給大家介紹了關(guān)于鴻蒙Js實(shí)戰(zhàn)之計(jì)算器功能開發(fā)的相關(guān)資料,計(jì)算器是我們生活中經(jīng)常使用的應(yīng)用,此項(xiàng)目是基于Harmony實(shí)現(xiàn)的簡(jiǎn)易計(jì)算器,需要的朋友可以參考下2024-02-02
基于JavaScript實(shí)現(xiàn)電子簽名功能
這篇文章主要為大家詳細(xì)介紹了如何通過JavaScript實(shí)現(xiàn)簡(jiǎn)單的電子簽名功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-11-11
通過判斷JavaScript的版本實(shí)現(xiàn)執(zhí)行不同的代碼
有時(shí)候需要根據(jù)JavaScript的版本來分別執(zhí)行一些代碼,那么就可能需要用到下面的代碼.2010-05-05
Echarts直角坐標(biāo)系x軸y軸屬性設(shè)置整理大全
直角坐標(biāo)系的設(shè)置指的是網(wǎng)格,坐標(biāo)軸和區(qū)域縮放的配置,下面這篇文章主要給大家介紹了關(guān)于Echarts直角坐標(biāo)系x軸y軸屬性設(shè)置的相關(guān)資料,需要的朋友可以參考下2022-11-11

