jQuery.parseJSON() は、エスケープされた一重引用符を含む JSON を解析できません。 有効な JSON 文字列。 JSON 仕様では二重引用符のエスケープのみが許可されているため、これは正常です。
以下に示すように、JSON ステート マシンの図は、二重引用符のみエスケープが許可され、一重引用符は許可されないことを示しています。
[画像: JSON State Machine]
仕様では一重引用符のエスケープが許可されていませんが、一部の JSON 実装ではそれを受け入れる場合があります。たとえば、Java の org.json では一重引用符が許可されますが、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.parse を使用して JSON を解析する際のエラーを回避するには、JSON 文字列で一重引用符の使用を避けるか、一重引用符の実装を受け入れる JSON ライブラリに切り替えます。
以上が以下は、提供された記事の内容に基づいて生成された英語の質問と回答のタイトルです。 1. JSON 内にエスケープされた一重引用符があると、jQuery.parseJSON() が「無効な JSON」エラーをスローするのはなぜですか? 2. JSO 内で一重引用符をエスケープすることはできますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。