zoukankan      html  css  js  c++  java
  • 关于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的值
  • 相关阅读:
    BZOJ3779: 重组病毒
    BZOJ3112 [ZJOI2013]防守战线
    BZOJ4011 [HNOI2015]落忆枫音
    BZOJ2726 [SDOI2012]任务安排
    BZOJ1492 [NOI2007]货币兑换
    BZOJ1597 [USACO2008]土地购买
    BZOJ3611 [HEOI2014]大工程
    BZOJ3991 [SDOI2015]寻宝游戏
    BZOJ3675 [APIO2014]序列分割
    BZOJ1010 [HNOI2008]玩具装箱
  • 原文地址:https://www.cnblogs.com/yingger/p/3161231.html
Copyright © 2011-2022 走看看