Json 在 web 开发的用处非常广泛, 作为数据传递的载体, 如何解析 Json 返回的数据是非常常用的. 下面介绍下四种解析 Json 的方式:
例:
html 代码
- var list1 = [1,3,4];
- alert(list1[1]);
- var list2 = [{"name":"leamiko","xing":"lin"}];
- alert(list2[0]["xing"])
- alert(list2[0].xing)
例:
html 代码
- 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])
- {
- 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 这是很关键的.
例:
html 代码
- 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 来访问该属性值.
例:
html 代码
- 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 的值.
当一个人找不到出路的时候, 最好的办法就是将当前能做好的事情做到极致, 做到无人能及.
来源: http://www.qdfuns.com/article/31677/f7c3b9961dc633e20154c696dba93df9.html