メインコンテンツまでスキップ

4. Objects (オブジェクト)

オブジェクト構造は、0個以上の名前/値のペア (Name/Value Pairs)(またはメンバー、Members)を囲む1組の中括弧として表されます。名前は文字列です。各名前の後にコロンが続き、名前と値を区切ります。単一のカンマは、値と後続の名前を区切ります。オブジェクト内の名前は一意であるべきです (SHOULD)。

object = begin-object [ member *( value-separator member ) ]
end-object

member = string name-separator value

すべての名前が一意であるオブジェクトは、そのオブジェクトを受信するすべてのソフトウェア実装が名前と値のマッピングに同意するという意味で相互運用可能です。オブジェクト内の名前が一意でない場合、そのようなオブジェクトを受信するソフトウェアの動作は予測不可能です。多くの実装は最後の名前/値のペアのみを報告します。他の実装はエラーを報告するか、オブジェクトの解析に失敗し、一部の実装は重複を含むすべての名前/値のペアを報告します。

JSON 解析ライブラリは、オブジェクトメンバーの順序を呼び出し側ソフトウェアに可視化するかどうかについて異なることが観察されています。メンバーの順序に依存しない動作を持つ実装は、これらの違いの影響を受けないという意味で相互運用可能です。