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

前言

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

导致报错的原因 

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

1)

2)

3) 双引号

4)单引号

5)双引号包含双引号

6)单引号包含单引号

解决办法

1)    

    前端:替换成\n

2)

    前端:替换成\r

3) 双引号

    前端:替换成"

4)单引号

  前端:替换成'

5)双引号包含双引号

    前端:双引号包含单引号

6)单引号包含单引号

    前端:单引号包含双引号

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

可能存在问题

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

解决办法:

方法一:我们可以在渲染页面前找到 将其替换成<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;
}

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

额外参考

取后台json过程由于转义字符出现的问题

转义字符(\\\\)对JavaScript中JSON.parse的影响概述

原文地址:https://www.cnblogs.com/kunmomo/p/10603509.html