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中文網其他相關文章!