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

Json字符串转换成Json对象时候,有两种方式:

假设d是json字符串:

1,eval('(' + d + ')')。

2,JSON.parse(d);

 

但是以上方式有隐患,如果Json字符串有换行的话,这样转换就会报错。

假如有这样一个字符串:

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")。

如下:

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

 

 

posted @ 2018-03-28 10:16  美好的明天  阅读(29476)  评论(0编辑  收藏  举报