JS对JSON数据的操作-解析操作

[align=center]JS对JSON数据的操作-解析操作[/align]

[b]1.1JS解析JSON字符串[/b]
[b]1.1.1使用eval()函数解析[/b]
由于JSON语法是JS语法的子集,JS函数eval()可用于将JSON字符串转换为JOSN对象。
解析方式:
eval()函数使用JS编译器,解析JSON文本生成JS对象。
语法:
var obj = eval ("(" + txt + ")");
[color=red]注意:必须把文本包围在括号中,这样才能避免语法错误。[/color]
例:
[i]<html>
<head></head>
<body>
<p>
First Name: <span id="fname"></span><br />
Last Name: <span id="lname"></span><br />
</p>
<script type="text/javascript">
var txt = '{"employees":[' +
'{"firstName":"Bill","lastName":"Gates" },' +
'{"firstName":"George","lastName":"Bush" },' +
'{"firstName":"Thomas","lastName":"Carter" }]}';
var obj = eval ("(" + txt + ")");
document.getElementById("fname").innerHTML=obj.employees[1].firstName;
document.getElementById("lname").innerHTML=obj.employees[1].lastName;
</script>
</body>
</html>[/i]
[b]1.1.2 使用JSON.parse()方法解析[/b]
解析方式:
JSON.parse()方法使用JSON解析器将JSON字符串转换为JOSN对象。
语法:
var obj = JSON.parse(txt);
例:
[i]<html>
<head></head>
<body>
<p>
First Name: <span id="fname"></span><br />
Last Name: <span id="lname"></span><br />
</p>
<script type="text/javascript">
var txt = '{"employees":[' +
'{"firstName":"Bill","lastName":"Gates" },' +
'{"firstName":"George","lastName":"Bush" },' +
'{"firstName":"Thomas","lastName":"Carter" }]}';
var obj = JSON.parse(txt);
document.getElementById("fname").innerHTML=obj.employees[1].firstName;
document.getElementById("lname").innerHTML=obj.employees[1].lastName;
</script>
</body>
</html>[/i]
[b]1.1.3两种解析方式的比较[/b]
eval()函数使用JS编译器解析,可编译并执行任何JS代码。存在一个潜在的安全问题。
JSON.parse()函数使用JSON解析器解析,JSON 解析器只能识别JSON文本,而不会编译脚本。使用起来更安全。
较新的浏览器和最新的ECMAScript(JavaScript)标准中均包含了原生的对JSON的支持。并且JSON解析器的速度更快。
[b]1.2解析JSON对象——JSON.stringify()方法[/b]
JSON.stringify()方法,使用JSON解析器将JSON对象转换为JSON字符串。
语法:
JSON.stringify(JSON对象);
例:
[i]<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
var obj ={"name":"helicopter",
"age":23,
"hobby":{"first":"swimming","second":"singing","third":"dancing"}};
var jsonStr=JSON.stringify(obj);
document.write(jsonStr);
</script>
</head>
<body>
</body>
</html>[/i]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值