zl程序教程

您现在的位置是:首页 >  后端

当前栏目

收集json解析的四种方法分享

方法JSONJSON 解析 分享 收集 四种
2023-06-13 09:15:16 时间

Json在Web开发的用处非常广泛,作为数据传递的载体,如何解析Json返回的数据是非常常用的。下面介绍下四种解析Json的方式:

Part1

复制代码代码如下:


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

Part2

复制代码代码如下:

varvalue={
   "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(varcountryObjinvalue)
{
   document.write(countryObj+":<br/>")
   //没用的for(varcityObjinvalue.countryObj)
   for(varcityObjinvalue[countryObj])
   {
       document.write("   "+cityObj+"<br/>");
       for(varitemObjinvalue[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这是很关键的。

Part3

复制代码代码如下:
varvalue2={

   "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(varcountryObjinvalue2)
{
   document.write(countryObj+":<br/>")  
   for(varcityObjinvalue2[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来访问该属性值。

Part4

复制代码代码如下:
varvalue2={
   "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(varcountryObjinvalue2)
   {
       document.write(countryObj+":<br/>")  
       //document.write(" "+value2[countryObj].length);
       for(vari=0;i<value2[countryObj].length;i++)
       {
           document.write(" "+value2[countryObj][i]["name"]+"<br/>");  
       }
   }

解释:

countryObjvalue2对象的属性名,value2[countryObj]属性值本例中是一个数组,value2[countryObj].length数组的长度,value2[countryObj][i]数组的项==json对象。

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