产景:突然大早上的有个客户说商品的编辑多规格乱码了,奇怪的是这个只是这个客户而已,其他客户正常,因为是做平台的,于是发现了个一直遗留的bug问题。
查看表数据发现;存在tab键。而前端在json解析的时候没有做处理;客户是啥操作都有的,不可能是让客户自检查,尽量代码做处理才是合适的。
[
{
"attr_list": [
{
"attr_id": 65724,
"attr_name": "燕窝(白燕盏)30g(6片)标准盏 礼盒装"
}
],
"num": 0,
"price": 998,
"no": "071896",
"bar_code": "",
"pic": "http://ddwimg.lihuobao.cn/web/uploads/image/store_57/679cf75507e9ea4d5ef279835d5844b964d13ada.jpg"
},
{
"attr_list": [
{
"attr_id": 65769,
"attr_name": "燕窝(白燕盏)\t30g(6片)/疏盏\t礼盒装"
}
],
"num": 0,
"price": 980,
"no": "071894",
"bar_code": "",
"pic": "http://ddwimg.lihuobao.cn/web/uploads/image/store_57/781c79b3dfe3731caf9179447b308dfbee44ee88.jpg"
}
]
因此记录一下,json解析应该提前做一下处理!
var str= "json字符串";
str=str.replace(/\\/g,"\\\\");
str=str.replace(/\n/g,"\\n");
str=str.replace(/\r/g,"\\r");
str=str.replace(/\t/g,"\\t");
str=str.replace(/("")+/g,"\"\"");
str=str.replace(/\'/g,"'");
str=str.replace(/ /g," ");
str=str.replace(/</g,"<");
str=str.replace(/>/g,">");
console.log(JSON.parse(str))