JSON.stringify()没有转义撇号

时间:2011-09-08 14:16:45

标签: json

...使用JSON2.js和JQUERY

从第一张图片中可以看出,对象属性 customerReport.Title 有一个撇号。在代码中,您可以看到我将JSON.stringify()调用到 reportAsJson 字符串中,该字符串仍然具有未转义的撇号。

$ .ajax()返回的错误是{"Message":"Invalid object passed in, \u0027:\u0027 or \u0027}\u0027 expected. ...

最初我只是要禁止用户使用撇号,但我认为JSON.stringify()处理了这个或者我是否需要设置一些选项????

由于

enter image description here

enter image description here

enter image description here

2 个答案:

答案 0 :(得分:6)

您可以避免删除这些撇号,将其替换为HTML实体' - ,这是一个单一的 - 然后在客户端中解码HTML实体或服务器端。

答案 1 :(得分:0)

在对字符串化和其他JSON解析函数进行了如此多的失败尝试之后,以下内容对我有用:

updatedString = string.replace(/('[a-zA-Z0-9\s]+\s*)'(\s*[a-zA-Z0-9\s]+')/g,"$1\\\'$2");

其中

  • string =包含撇号的字符串。
  • updatedString =字符串,其中撇号问题已解决/已转义