Jsonを巡ってデータを得るいくつかの方法
10498 ワード
JsonはWeb開発の用途が非常に広く,データ伝達の担体としてJsonが返すデータをどのように解析するかがよく用いられる.Jsonを解析する方法を4つ紹介します.例①:
例②:
解釈:countryObjはvalueオブジェクトの1つの属性明である、value[countryObj]はvalueオブジェクトの属性値であるここでは1つのjsonオブジェクト、例えばbである、value[countryObj][cityObj]はjosnオブジェクトbの属性値であり、これもjsonオブジェクトであるため、value[countryObj][cityObj][item]はjsonオブジェクトが一時的にcの値になるか、value[countryObj][cityObj]を取ることができる.item. とにかくjsonなのかarrayなのかをはっきりさせることが肝心です.
例③:
解釈:countryObjはvalue 2オブジェクトの属性名、value 2[countryObj]はvalue 2オブジェクトの属性値であるこの例では配列である、cityObjは配列の1つの要素であり、また別のjsonオブジェクトであるため、value 2[countryObj][cityObj][name]はそのオブジェクトのnameの属性値にアクセスし、value 2[countryObj][cityObj].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の値を取得します.
一人で道が見つからないときは、今できることを極めて、誰も及ばないようにするのが一番です.
var list1 = [1,3,4];
alert(list1[1]);
var list2 = [{"name":"leamiko","xing":"lin"}];
alert(list2[0]["xing"])
alert(list2[0].xing)
例②:
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オブジェクトの属性値であるここでは1つのjsonオブジェクト、例えばbである、value[countryObj][cityObj]はjosnオブジェクトbの属性値であり、これもjsonオブジェクトであるため、value[countryObj][cityObj][item]はjsonオブジェクトが一時的にcの値になるか、value[countryObj][cityObj]を取ることができる.item. とにかくjsonなのかarrayなのかをはっきりさせることが肝心です.
例③:
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でプロパティ値にアクセスします.
例④:
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の値を取得します.
一人で道が見つからないときは、今できることを極めて、誰も及ばないようにするのが一番です.