js错误: Unexpected number in JSON at position 2792 value里面有双引号怎么解决

源头
  出现这个报错提示,大家从错误就可以看的出来,这就是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自带的双引号格式一模一样,请恕我暂时无能为力。


总结
  js里面出现这种问题就找里面是不是有特殊符号就是了,因为特殊符号破坏了json。总之我们遇到问题不要慌乱,要冷静下来寻找方法,可以replace的直接replace,不能的想办法replace,办法总是比问题多的。
---------------------
作者:dongbeihuxiao
来源:CSDN
原文:https://blog.csdn.net/dongbeihuxiao/article/details/92990106
版权声明:本文为博主原创文章,转载请附上博文链接!

posted on 2019-06-20 11:08  东北虎啸  阅读(1277)  评论(0编辑  收藏  举报

导航