JSON.stringify()未转义撇号

12

...使用JSON2.js和JQUERY

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

$.ajax()返回的错误是{"Message":"传入无效对象,应为\u0027:\u0027或\u0027}\u0027。...

最初我只打算禁止用户使用撇号,但我想JSON.stringify()处理这个问题了,还是需要设置一些选项吗?谢谢!

输入图像描述

输入图像描述

输入图像描述


1
在JSON中,您不需要转义单引号。这个 {"Message":"Invalid object passed in... 是从哪里来的? - Matt Ball
这个错误信息是什么返回的? - anthony sottile
@MattBall 我从Firebug的控制台面板中复制了这个,来自响应选项卡。 - kevcoder
请查看更新后的截图以获取错误来源。除非我删除撇号,否则我的 .net 代码永远不会被调用。 - kevcoder
2个回答

6

您可以避免删除这些 撇号,而是用 HTML 实体 ' 替换它们 - 那是一个单引号 - 然后在客户端或服务器端解码 HTML 实体。


尽可能避免这种情况...如果我可以的话 - kevcoder

1

在多次尝试 stringify 和其他 JSON 解析函数失败后,以下方法对我有效:

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

什么是

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接