json解析を収集する4つの方法の共有

4826 ワード

JsonはWeb開発の用途が非常に広く,データ伝達の担体としてJsonが返すデータをどのように解析するかがよく用いられる.Jsonを解析する方法を4つ紹介します.
Part 1
 
  
var list1 = [1,3,4];
alert(list1[1]);
var list2 = [{"name":"leamiko","xing":"lin"}];
alert(list2[0]["xing"])
alert(list2[0].xing)

Part 2
 
  
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 + ":
")
    // for(var cityObj in value.countryObj)
    for(var cityObj in value[countryObj])
    {
        document.write('    ' + cityObj + "
");
        for(var itemObj in value[countryObj][cityObj])
        {
            document.write("      "+ itemObj + value[countryObj][cityObj][itemObj] +"
")  
        }
    }  
}  

説明:
countryObjはvalueオブジェクトの1つの属性明である、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
 
  
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 + ":
")  
    for (var cityObj in value2[countryObj])
    {
        // document.write("  " + value2[countryObj][cityObj].item + "
");
        document.write(cityObj + "  " + value2[countryObj][cityObj]["name"] + "
" );  
    }
}


説明:
countryObjはvalue 2オブジェクトの属性名、value 2[countryObj]はvalue 2オブジェクトの属性値であるこの例では配列であり、cityObjは配列の1つの要素であり、また別のjsonオブジェクトであるため、value 2[countryObj][cityObj][name]はそのオブジェクトのnameの属性値にアクセスし、value 2[countryObj][cityObj].nameでプロパティ値にアクセスします.
Part 4
 
  
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 + ":
")  
        //document.write("  " + value2[countryObj].length);
        for (var i = 0;i < value2[countryObj].length; i++)
        {
            document.write("  " + value2[countryObj][i]["name"] + "
");  
        }
    }

説明:
countryObj value 2オブジェクトの属性名、value 2[countryObj]属性値この例では配列、value 2[countryObj]である.length配列の長さ、value 2[countryObj][i]配列のアイテム==jsonオブジェクト.
value 2[countryObj][i][name]でnameの値を取得し、value 2[countryObj][i]を使用することもできる.nameでnameの値を取得します.