【问题标题】:jQuery.parseJSON fails if single quote is part of response如果单引号是响应的一部分,则 jQuery.parseJSON 失败
【发布时间】:2025-11-28 06:50:01
【问题描述】:

读取响应对象,值中包含单引号,如下所示 -

{"Offername":"One month Offer",
"OfferDescription":"One month's goodies free"}

尝试添加转义字符,但上面的 JSON 根据 jsonlint.com 是有效的,但 jQuery.parseJSON 仍然失败,上面的 JSON 带有单个撇号。

感谢任何对我有帮助的回复。

【问题讨论】:

  • 它不会/不会。请显示 actual JSON 和 actual '失败'代码。
  • 无法复制:jsfiddle.net/15vvxnfr/1。您确定 jQuery 还没有解析 JSON 并且您正在尝试解析对象吗?
  • 我认为你正在解析一个对象。
  • Cerlin 是对的..您正在解析一个对象...尝试将此响应设置为一个变量并尝试 typeof...

标签: jquery json parsing


【解决方案1】:

正如其中一位评论者所说,您使用的是 object 而不是 string。 所以需要使用命令JSON.stringify将其转为字符串。

JSON.stringify() 方法将 JavaScript 值转换为 JSON 字符串,如果替换函数是可选的替换值 指定的,或者可选地仅包括指定的属性,如果 指定了替换数组。 More

然后,当你得到一个字符串(用 typeof 测试它),你可以解析它(注意:jQuery.Parse 需要一个字符串,而不是一个对象)。 About

jsFiddle

【讨论】:

  • 将对象转成字符串的目的究竟是什么?
  • @FelixKling:CQCore 在解析响应时遇到了问题,对吧?他没有发布任何代码,只有单引号的问题。所以我试图在 jsFiddle 中解决他的问题,当我发现他的类型是 OBJECT 而不是 jquery.ParseJSON 需要的字符串 (api.jquery.com/jquery.parsejson) 时。他发布的回复适用于我发布的解决方案。我还争论出了什么问题以及解决方案是什么。
  • 正如你所说,由于他们没有发布任何代码,我们并不真正知道发生了什么。他们解析一个对象是一种可能性,但不是事实。也就是说,if 他们有一个对象,那么不需要将该对象转换为字符串 (JSON) 即可再次将其转换为对象。只需使用对象!即,不用obj = JSON.parse(JSON.stringify(obj)),只需使用obj 并忘记JSON。
最近更新 更多