关于JS解析编历JSON数组(含多维数组)

第一部分:

复制代码
View Code
1     var list1 = [1,3,4];
2     alert(list1[1]);
3     var list2 = [{"name":"leamiko","xing":"lin"}];
4     alert(list2[0]["xing"])
5     alert(list2[0].xing)
复制代码

第二部分:

复制代码
 1 var value = {
 2         "china":{
 3                 "hangzhou":{"item":"1"},
 4                 "shanghai":{"item":"2"},
 5                 "chengdu":{"item":"3"}
 6         },
 7         "America":{
 8                 "aa":{"item":"1"},
 9                 "bb":{"item":"2"}    
10         },
11         "Spain":{
12                 "dd":{"item":"1"},
13                 "ee":{"item":"2"},
14                 "ff":{"item":"3"}    
15         }
16     };
17 for(var countryObj in value)
18     {
19         document.write(countryObj + ":<br />")
20         //没用的for(var cityObj in value.countryObj)
21         for(var cityObj in value[countryObj])
22         {
23             document.write('&nbsp;&nbsp;&nbsp;&nbsp;' + cityObj + "<br />");
24                 for(var itemObj in value[countryObj][cityObj])
25                 {
26                     document.write("&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+ itemObj + value[countryObj][cityObj][itemObj] +"<br />")    
27                 }
28         }    
29     }   
复制代码
解释:
    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这是很关键的

第三部分:

复制代码
 1 var value2 = {
 2             "china":[
 3                     {"name":"hangzhou""item":"1"},
 4                     {"name":"shanghai""item":"2"},
 5                     {"name":"sichuan""item":"3"}
 6             ],
 7             "America":[
 8                     {"name":"aa""item":"12"},
 9                     {"name":"bb""item":"2"}
10             ],
11             "Spain":[
12                     {"name":"cc""item":"1"},
13                     {"name":"dd""item":"23"},
14                     {"name":"ee""item":"3"}
15             ]
16     };
17     
18     for (var countryObj in value2)
19     {
20         document.write(countryObj + ":<br />")    
21         for (var cityObj in value2[countryObj])
22         {
23                 //可以用document.write("&nbsp;&nbsp;" + value2[countryObj][cityObj].item + "<br />");
24                 document.write(cityObj + "&nbsp;&nbsp;" + value2[countryObj][cityObj]["name"+ "<br />" );    
25         }
26     }
复制代码
解释:
    countryObj 为value2对象的属性名
    value2[countryObj] 为value2对象属性值 在本例中它是一个数组
    cityObj 是数组的一个元素,它又是另外一个json对象
    于是,value2[countryObj][cityObj]["name"]就访问到该对象的 name的属性值
    也可以通过 value2[countryObj][cityObj].name 来访问该属性值

第四部分:

复制代码
 1 var value2 = {
 2             "china":[
 3                     {"name":"hangzhou""item":"1"},
 4                     {"name":"shanghai""item":"2"},
 5                     {"name":"sichuan""item":"3"}
 6             ],
 7             "America":[
 8                     {"name":"aa""item":"12"},
 9                     {"name":"bb""item":"2"}
10             ],
11             "Spain":[
12                     {"name":"cc""item":"1"},
13                     {"name":"dd""item":"23"},
14                     {"name":"ee""item":"3"}
15             ]
16     };
17     
18     for (var countryObj in value2)
19     {
20         document.write(countryObj + ":<br />")    
21         //document.write("&nbsp;&nbsp;" + value2[countryObj].length);
22         for (var i = 0;i < value2[countryObj].length; i++)
23         {
24             document.write("&nbsp;&nbsp;" + value2[countryObj][i]["name"+ "<br />");    
25         }
26     }
复制代码
解释:
    countryObj value2对象的属性名
    value2[countryObj] 属性值 本例中是一个数组
    value2[countryObj].length 数组的长度.
    value2[countryObj][i]数组的项 == json对象
    
    value2[countryObj][i]["name"] 取得name的值
    也可以用value2[countryObj][i].name 来取得name的值
原文地址:https://www.cnblogs.com/yingger/p/3161231.html