JSON の領域では、有効な JSON 文字列の最低限度のものは何でしょうか?という疑問がよく出されます。この記事では、この問題について詳しく説明します。
初期の頃、RFC4627 は JSON 仕様の決定的なソースとして機能しました。この標準では、「{}」と「[]」の両方が有効なスタンドアロン JSON 文字列を表すことが規定されています。他のすべてのインスタンスは無効とみなされます。
しかし、このアプローチは ECMA-404 の導入によって進化し、大きな変化をもたらしました。
ECMA-404 では、有効な JSON 値の定義が拡張され、オブジェクトや配列だけでなく、文字列、数値などが含まれるようになりました。したがって、「string」のようなリテラルや 42 のような数値を含む、より広範囲の文字列が有効になりました。
ただし、Web ブラウザは、次の影響を受ける独自の標準を採用しています。 ES5仕様。このバージョンの仕様では、ブール値 (「true」など) を含む任意の有効な JSON 値を JSON 文字列のルートとして許可します。
すべてがそうではないことに注意することが重要です。 JSON 実装は同じ標準に準拠しています。たとえば、Ruby は依然として厳密な実装を行っており、オブジェクトと配列のみを有効なルートとして受け入れます。一方、PHP には、スカラー値と null 値を許可する例外が組み込まれています。
有効な JSON の定義は、時間の経過とともに微妙ではありますが重要な変更を受けてきました。 「{}」と「[]」は依然として最も基本的な形式ですが、最新の仕様ではより広範囲の文字列値が許可されています。互換性を確保し、予期しない解析エラーを防ぐには、さまざまな実装のニュアンスを理解することが重要です。
以上が有効な JSON 文字列の定義: 標準の進化の詳細の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。