jQuery.parseJSON()无法解析包含转义单引号的有效JSON字符串。这是正常的,因为JSON规范只允许转义双引号。
如下图示,JSON状态机图表示只允许转义双引号,不允许单引号。
[图片:JSON状态机]
尽管规范不允许转义单引号,但一些JSON实现可能会接受它们。例如,org.json for Java允许单引号,而jQuery使用的json2.js则遵循规范,不允许。
jQuery.parseJSON首先尝试使用浏览器原生JSON解析器或json2.js,因此它只允许与底层实现一样宽松。由于json2.js遵从规范,因此jQuery也不允许单引号。
parseJSON: function( data ) { ... // Attempt to parse using the native JSON parser first if ( window.JSON && window.JSON.parse ) { return window.JSON.parse( data ); } ... jQuery.error( "Invalid JSON: " + data ); },
为了避免使用jQuery.parseJSON解析时出错,避免在JSON字符串中使用单引号,或者转而使用接受单引号实现的JSON库。
以上是以下是几个根据你提供的文章内容生成的英文问答类标题: 1. Why does jQuery.parseJSON() throw an \"Invalid JSON\" error when there are escaped single quotes in the JSON? 2. Is it allowed to escape single quotes in a JSO的详细内容。更多信息请关注PHP中文网其他相关文章!