服务端返回的json数据,导致前端报错的原因及解决方法

摘要:最近在开发的过程中遇到了一个问题:后端传过来的json字符串不是标准的json字符串,后端传过来的json字符串中包含一些不标准的字符或错误的引号嵌套

前言

最近在开发的过程中遇到了一个问题:后端传过来的json字符串不是标准的json字符串


导致报错的原因 

后端传过来的json字符串中包含一些不标准的字符或错误的引号嵌套

1)\

2) \

3) 双引号

4)单引号

5)双引号包含双引号

6)单引号包含单引号


解决办法

1)\    

    前端:替换成\\

2) \

    前端:替换成\\

3) 双引号

    前端:替换成"

4)单引号

  前端:替换成'

5)双引号包含双引号

    前端:双引号包含单引号

6)单引号包含单引号

    前端:单引号包含双引号

当然我们需要后端同时配合处理


可能存在问题

\\ 失效,在页面并没有换行

解决办法:

方法一:我们可以在渲染页面前找到\ 将其替换成<br/>

this.termUse=data.replace(/\
/g,‘<br/>‘);
this.renderFloorContent(this.termUse);

补充:因为不同编辑输出的回车换行不太一样,如果你发现替换\ 无效果,可以试着换成\ 或者\ \ 再看结果,总有一种可以替换成功

方法二:我们可以在渲染页面前需要循环字符换,将等于\ 的字符串替换成“<br/>”,重组字符串

var i;
var result = "";
var c;
for (i = 0; i < str.length; i++) {
   c = str.substr(i, 1);
    if ( c == "\
")
       result = result + "</br>";
    else if (c != "\
")
       result = result + c;
}

方法二能用,但太麻烦不推荐


本文内容仅供个人学习、研究或参考使用,不构成任何形式的决策建议、专业指导或法律依据。未经授权,禁止任何单位或个人以商业售卖、虚假宣传、侵权传播等非学习研究目的使用本文内容。如需分享或转载,请保留原文来源信息,不得篡改、删减内容或侵犯相关权益。感谢您的理解与支持!

链接: https://shenqiku.cn/article/FLY_2563