源头
出现这个报错提示,你们从错误就能够看的出来,这就是json的错误,通常来讲都是json格式出现了错误,本人遇到比较多的状况就是json字符串里面出现了一些会影响json格式的符号,此次出现这个错误的缘由就是json字符串里面出现了引号。json
事发–血案
今天客户让我查询一个合同,可是打开合同具体信息时发现合同页面里面都是空白,天然而然就用浏览器调试,发现了这个错。
遇到这种问题没办法了,只能检查把本身的json字符串显示出来查看看是否存在特别的字符,通常来讲像反斜杠,单引号,双引号,回车,以及空字符串之类的,而我本次遇到的就是其中一个属性的值为双引号。通常来讲遇到特殊符号用过replace方法替换掉就是了,可是这个双引号和其余符号不一样,由于他和json格式自带的双引号如出一辙,替换掉那json自带的双引号也就被替换掉了,因此我用了一个比较笨的方法来解决此事。
这个方法就是找规律,json自带的双引号无非就是 “:”,",",{","} 这四种,我就把这四种先替换成单引号,再把剩余的双引号替换为中文的双引号,最后再把这四种再恢复就能够了
var a=’${c}’
var b=a.replace(/":"/g,"’:’");
var d=b.replace(/","/g,"’,’");
var e=d.replace(/"}/g,"’}");
var f=e.replace(/{"/g,"{’");
var g=f.replace(/"/g,"“");
var h=g.replace(/’/g,""");浏览器
固然了,这个方法只适用于通常的json问题,若是你的json的value值里面的双引号格式和json自带的双引号格式如出一辙,请恕我暂时无能为力。.net
总结
js里面出现这种问题就找里面是否是有特殊符号就是了,由于特殊符号破坏了json。总之咱们遇到问题不要慌乱,要冷静下来寻找方法,能够replace的直接replace,不能的想办法replace,办法老是比问题多的。
---------------------
做者:dongbeihuxiao
来源:CSDN
原文:https://blog.csdn.net/dongbeihuxiao/article/details/92990106
版权声明:本文为博主原创文章,转载请附上博文连接!调试