json解析
来源:互联网 发布:php面向对象程序设计 编辑:程序博客网 时间:2024/05/18 22:10
Json在Web开发的用处非常广泛,作为数据传递的载体,如何解析Json返回的数据是非常常用的。下面介绍下四种解析Json的方式:
第一种:
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)
第二种:
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这是很关键的。
第三种:
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 来访问该属性值。
第四种:
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的值。
第五种,解析json
服务器上的json
{"result":null,"rows":[{"caishen":"东","fushen":"西北","huajiazi":"甲子","id":1,"nayin":"大海水","shengmen":"南","simen":"北","wugui":"西","xishen":"东南","yanggui":"西南","yingui":"东北"},{"caishen":"东北","fushen":"北","huajiazi":"乙丑","id":2,"nayin":"大林木","shengmen":"西北","simen":"西南","wugui":"东南","xishen":"东","yanggui":"西","yingui":"南"},{"caishen":"西","fushen":"东","huajiazi":"丙寅","id":3,"nayin":"石榴木","shengmen":"北","simen":"西北","wugui":"南","xishen":"东南","yanggui":"东北","yingui":"西南"}],"total":3}
- //通过url获取json对象
- $.post("json/godjson!godlist", function (data){
- //data.rows返回的是json字符串。需要转换成json对象
- var json = eval(data.rows)
- //json变量现在就是一个数组对象,直接读取每个数组对象。结合属性进行输出
- for(var i=0; i<json.length; i++){
- alert(json[i].caishen+"--------- " + json[i].xishen);
- }
- //记得返回的数据类型一定要是json类型
- }, "json");
- 【JSON解析】JSON解析
- 解析JSON
- Json解析
- JSON解析
- JSON解析
- json解析
- Json解析
- Json解析
- JSON解析
- Json解析
- Json解析
- JSON解析
- JSON解析
- json 解析
- Json解析
- JSON解析
- json解析
- json 解析
- 用户 NT AUTHORITY\NETWORK SERVICE 登录失败 解决方法 (MS SQL 2005)
- Combinations(组合)
- 【搜索】HDU1104
- 【Java】多态性Polymorphism
- 手把手教你把Vim改装成一个IDE编程环境(图文)
- json解析
- Hadoop进军机器学习:Cloudera收购Myrrix共创“Big Learning”
- 读60行代码完成的NoSQL数据库,看数据库打造面临的挑战
- White Elephant:开发者必备的Hadoop利器
- 【Java】Java工厂模式之简单工厂
- 数据库性能优化详解
- 数据挖掘领域十大经典算法初探
- codeforces ABBYY Cup 3.0 - Finals (online version) B2. Shave Beaver!
- [Java]读取文件方法大全