• javaScript的遍历json


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

    Part 1

    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)

    Part 2

    01 var value = {
    02     "china":{
    03         "hangzhou":{"item":"1"},
    04         "shanghai":{"item":"2"},
    05         "chengdu":{"item":"3"}
    06     },
    07     "America":{
    08         "aa":{"item":"1"},
    09         "bb":{"item":"2"}   
    10     },
    11     "Spain":{
    12         "dd":{"item":"1"},
    13         "ee":{"item":"2"},
    14         "ff":{"item":"3"}   
    15     }
    16 };
    17  
    18 for(var countryObj in value)
    19 {
    20     document.write(countryObj + ":<br />")
    21     //没用的for(var cityObj in value.countryObj)
    22     for(var cityObj in value[countryObj])
    23     {
    24         document.write('    ' + cityObj + "<br />");
    25         for(var itemObj in value[countryObj][cityObj])
    26         {
    27             document.write("      "+ itemObj + value[countryObj][cityObj][itemObj] +"<br />")   
    28         }
    29     }   
    30 }   

    解释:

    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这是很关键的。

    Part 3

    01 var value2 = {
    02     "china":[
    03         {"name":"hangzhou", "item":"1"},
    04         {"name":"shanghai", "item":"2"},
    05         {"name":"sichuan", "item":"3"}
    06     ],
    07     "America":[
    08         {"name":"aa", "item":"12"},
    09         {"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("  " + value2[countryObj][cityObj].item + "<br />");
    24         document.write(cityObj + "  " + value2[countryObj][cityObj]["name"] + "<br />" );   
    25     }
    26 }

    解释:

    countryObj 为value2对象的属性名,value2[countryObj] 为value2对象属性值 在本例中它是一个数组,cityObj 是数组的一个元素,它又是另外一个json对象,于是,value2[countryObj][cityObj]["name"]就访问到该对象的 name的属性值,也可以通过 value2[countryObj][cityObj].name 来访问该属性值。

    Part 4

    01 var value2 = {
    02     "china":[
    03         {"name":"hangzhou", "item":"1"},
    04         {"name":"shanghai", "item":"2"},
    05         {"name":"sichuan", "item":"3"}
    06     ],
    07     "America":[
    08         {"name":"aa", "item":"12"},
    09         {"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("  " + value2[countryObj].length);
    22         for (var i = 0;i < value2[countryObj].length; i++)
    23         {
    24             document.write("  " + 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的值。

  • 相关阅读:
    C、C++混合调用
    20211027 投资策略优化
    2021投资策略
    程序猿多个对象的友好管理方式IOC容器
    欧几里德算法--求最大公约数
    C语言查找一个字符串中指定字符的个数
    linux下OpenSSL的RSA密钥生成
    文章目录
    python之禅
    EF 6.0 与sql ce 4.0 程序示例
  • 原文地址:https://www.cnblogs.com/biggestfish/p/2940551.html
Copyright © 2020-2023  润新知