ホームページ  >  記事  >  ウェブフロントエンド  >  以下は、提供された記事の内容に基づいて生成された英語の質問と回答のタイトルです。 1. JSON 内にエスケープされた一重引用符があると、jQuery.parseJSON() が「無効な JSON」エラーをスローするのはなぜですか? 2. JSO 内で一重引用符をエスケープすることはできますか?

以下は、提供された記事の内容に基づいて生成された英語の質問と回答のタイトルです。 1. JSON 内にエスケープされた一重引用符があると、jQuery.parseJSON() が「無効な JSON」エラーをスローするのはなぜですか? 2. JSO 内で一重引用符をエスケープすることはできますか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-11-01 13:34:02525ブラウズ

以下是几个根据你提供的文章内容生成的英文问答类标题:

1. Why does jQuery.parseJSON() throw an

jQuery.parseJSON は、JSON 内のエスケープされた一重引用符が原因で「無効な JSON」エラーをスローします。

jQuery.parseJSON() は、エスケープされた一重引用符を含む JSON を解析できません。 有効な JSON 文字列。 JSON 仕様では二重引用符のエスケープのみが許可されているため、これは正常です。

JSON 仕様

以下に示すように、JSON ステート マシンの図は、二重引用符のみエスケープが許可され、一重引用符は許可されないことを示しています。

[画像: JSON State Machine]

JSON 実装

仕様では一重引用符のエスケープが許可されていませんが、一部の JSON 実装ではそれを受け入れる場合があります。たとえば、Java の org.json では一重引用符が許可されますが、jQuery で使用される json2.js は仕様に従い、一重引用符を許可しません。

jQuery.parseJSON

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。