json解析中的坑+解析方法

本文通过实例揭示了JSON格式书写不规范导致的问题,特别是使用eval()解析时遇到的错误,并介绍了两种有效的JSON字符串解析方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚刚在w3c的json学习中发现了一个天坑,按照上面的demo自己写了一下,竟然报错了


测试了许久才发现原来是格式问题

json格式写为:var data='{"name":"1","val":"西安“}‘就不会报错,

但是如果为了可读性更好一点写成

var data = '{"root":
        [
        {"name":"1","val":"西安"},
        {"name":"2","val":"铜川"}
        ]}';

这样在用eval()函数解析的时候就会报错,因为eval()函数把其中的换行还有空格也解析出来了,

这样结果就不是json对象了,所以千万不要为了格式好看而更改json格式。

但是w3c格式写成那样为什么不把这个问题交代清楚,害的我纠结了老半天T_T,希望刚开始接触json的同学不要再被骗了。

下面说一下两种解析json字符串的方法:

方法一:

比较通用的eval()函数,这个就不多说了

方法二:

第二种解析方式就是使用Function对象来完成,它的典型应用就是在JQUERY中的AJAX方法下的success等对于返回数据data的解析
var json='{"name":"CJ","age":18}';
data =(new Function("","return "+json))();
此时的data就是一个会解析成一个 json对象了.


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值