JavaJavaScript小问题系列之JSON解析

解析JSON字符串的陷阱
本文记录了一次在前端开发中遇到的有趣问题:当服务端返回的JSON字符串带有特殊字符时,如何使用$.parseJSON进行正确解析,并提供了解决方案。

1、错误消息及截图

  这个很搞笑也很纠结,今天一开发妹子,发现一个问题:

  服务端返回字符串"{\"phone\":\"15000000000\"}";

  使用$.parseJSON(json)解析成JS对象,结果报错 SyntaxError: JSON Parse error: Unrecognized token '

2、歪路

  刚开始第一眼以为应该是反斜杠的问题,把反斜杠replace掉吧,结果这是个大坑呀;

  然后我直接在调试器上调试JSON.parse("{\"phone\":\"15000000000\"}"); 这样居然没问题;

  左看看,右看看,也没发现啥不同;

  后来我取这个字符串最后一位就是不然是}字符,而是空字符;

  懂了不,那是因为服务端返回的字符串居然带着\0,\0是java字符串默认结尾的字符;

3、正解

  可以让服务端改,也可以使用str.replace(/\0/g,'')把他替换掉。

4、我是一名前端

  最近在使用React-Native,感兴趣的童鞋可以一块玩玩。

React Native 插件系列之PushNotificationIOS
React Native插件系列之插件汇总
React Native 插件系列之foldview(可折叠视图)

转载于:https://www.cnblogs.com/yrcn/p/7412464.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值