首页 > web前端 > js教程 > 当存在转义单引号时,为什么 jQuery.parseJSON 会抛出'无效 JSON”错误?

当存在转义单引号时,为什么 jQuery.parseJSON 会抛出'无效 JSON”错误?

DDD
发布: 2024-10-29 06:50:30
原创
739 人浏览过

Why Does jQuery.parseJSON Throw

由于 JSON 中转义单引号,jQuery.parseJSON 抛出“无效 JSON”错误

问题:
使用 jQuery.post() 从服务器检索 JSON 对象时,如果任何值包含转义单引号 ('),则解析失败。即使 JSON 字符串在其他方面有效,也会发生这种情况。

原因:
根据 JSON 规范,字符串中只允许使用转义双引号,而不是单引号。根据 JSON 标准,单引号字符不需要转义。

更新:
Douglas Crockford 在“JavaScript:The Good Parts”中关于 JSON 的讨论中, JSON 的创建者解释说,只允许转义双引号的决定是为了简化互操作性。通过仅要求使用双引号,它消除了字符串混乱和意外终止的可能性。

含义:
这意味着单引号字符是不可能的在 JSON 字符串中意外终止该字符串。因此,在正式的 JSON 规范中,转义单引号字符是不必要的。

实现注意事项:
虽然 JSON 规范不允许转义单引号,但 bazı 实现,例如 org Java 的 .json 更加宽松并允许它们使用。然而,需要注意的是,这不是常态,许多流行的实现,包括 jQuery 使用的实现,都严格遵守官方 JSON 规范,并拒绝包含单引号字符串和/或转义单引号的 JSON。

jQuery.parseJSON 行为:
jQuery.parseJSON 依赖于浏览器提供的底层 JSON 解析器或加载的库(如 json2.js)。由于这些实现通常符合 JSON 规范,因此它们不允许转义单引号,因此 jQuery 也不允许。

以上是当存在转义单引号时,为什么 jQuery.parseJSON 会抛出'无效 JSON”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板