JSON.parse 解析json字符串时,遇换行符报错

向右看齐 2021-11-09 10:36 597阅读 0赞

Json字符串转换成Json对象时候,有两种方式:假设d是json字符串:
1,eval(’(’ + d + ‘)’);
2,JSON.parse(d);
但是以上方式有隐患,如果Json字符串有换行的话,这样转换就会报错。所以json字符串转对象时,是需要做一些过滤的。
假如有这样一个字符串:

  1. var json='{"CityName":"西安","CityOrder":"物料::WAA010001\n物料名称::轴承\n规格型号::HRB1209\n供应商::东莞市耀光化工贸易有限公司\n采购员::\n请购部门:: \n批号::JH201803250001"}';

输出的结果报错
####错误原因:
JSON.parse转json字符串时遇到一些特殊字符需要先转义。
用str.replace(/\n/g,”\n”)转义,’\‘转成单个’’,’\n’转成’\n’,最后转成’\n’这样就可以用parse转成对象时变为’\n’,取出的字符串设置到html文本中\n被解析为换行。
可以这样转义:.replace(/\n/g,”\n”).replace(/\r/g,”\r”)。
如下:

  1. var jsonObj=JSON.parse(json.replace(/\n/g,"\\n").replace(/\r/g,"\\r"));

输出结果正确

发表评论

表情:
评论列表 (有 0 条评论,597人围观)

还没有评论,来说两句吧...

相关阅读

    相关 jackson解析json的大写Key

    今天在测试jackson解析json串时,发现如果json串中,Key的值为大写的话,那么解析就会报错,这里给大家复现一下以及提供一种解决方案: 首先,我们建立一个实体类:这