JSON.parse解析json字符串包含 回车换行符报错
2020年5月27日 17点31分 今天改离职妹子代码的时候遇到了一个问题,我吐了。。。
JSON.parse()可以将Json字符串转换成Json对象
var json = '{"remark":"1u3001u548Cu5BA2u6237u786Eu8BA4u662Fu5426u6B63u5E38u4E0Au7EBFuFF0Cu5982u679Cu662FuFF0Cu9700u8981u5BA2u6237u63D0u4F9Bu90AEu4EF6u8D70u5148u4E0AuFF1B
2u3001u5982u679Cu4E0Du80FDu6B63u5E38u4E0Au7EBFuFF0Cu8BA9u5BA2u6237u786Eu8BA4u662Fu5426u6362u65F6u95F4uFF0Cu5220u9664u4E0Du9700u8981u7684u7684u8D44u6E90u3002","status":1,"createAt":"2020-05-25T12:03:32.000+08:00","updateAt":null,"createBy":"79086","updateBy":null}';
//妹子写的
JSON.parse(json)
这样的写法是存在问题的,如果json中存在 回车等特殊符号时,js会报解析失败的错误
VM90:1 Uncaught SyntaxError: Unexpected token
in JSON at position 41
at JSON.parse (<anonymous>)
at <anonymous>:7:6
unicode转码后排查数据中确实包含回车符号
var json = '{"remark":"1、和客户确认是否正常上线,如果是,需要客户提供邮件走先上;
2、如果不能正常上线,让客户确认是否换时间,删除不需要的的资源。","status":1,"createAt":"2020-05-25T12:03:32.000+08:00","updateAt":null,"createBy":"79086","updateBy":null}';
解决方法:
保存的的时候后台过滤、前台获取的时候进行过滤。
//改后的前台获取的时候进行过滤。
JSON.parse(json.replace(/[
s+]/g, ''))