在JSON对象中转义双引号

时间:2018-03-22 11:50:55

标签: javascript json parsing

我正在尝试使用与此类似的对象的 JSON.parse 来解析json对象:

{"id":3,"status_id":3,"project_class":"B","project_name":"Magic i-S6/" i-F1"}

问题突出为“Magic i-S6 /”作为 project_name

的值

它正在返回像这样的错误

  

Uncaught SyntaxError:位于102位的JSON中的意外标记i

我尝试过使用

str.replace(/"/g, '\\"');

但它不起作用。

我该怎么做才能防止此错误?

1 个答案:

答案 0 :(得分:3)

str.replace(/"/g, '\\"');将使用转义符号替换JSON中的所有引号:甚至是在JSON中分隔字符串所需的引号。

您应该通过更改生成损坏的JSON的代码来解决此问题。

接收之后尝试修复永远不可靠。

您可以尝试在特定的JSON字符串中定位坏数据的特定位...

str = str.replace('i-S6/"', 'i-S6\\"');

......但这不是一个强大的或一般的解决方案。

修复生成错误数据的错误代码是更好的方法。