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

1. Introduction (序論)

JavaScript Object Notation (JSON、JavaScript オブジェクト表記法) は、構造化データのシリアル化 (Serialization) のためのテキスト形式です。これは、ECMAScript プログラミング言語標準第3版 [ECMA-262] で定義されているように、JavaScript のオブジェクトリテラル (Object Literals) から派生しています。

JSON は、4つのプリミティブ型 (Primitive Types)(文字列、数値、ブール値、null)と2つの構造化型 (Structured Types)(オブジェクト、配列)を表現できます。

文字列 (String) は、0個以上の Unicode 文字 [UNICODE] の列です。この引用は、特定のリリースではなく、Unicode の最新バージョンを参照していることに注意してください。Unicode 仕様の将来の変更が JSON の構文に影響を与えることは想定されていません。

オブジェクト (Object) は、0個以上の名前/値のペア (Name/Value Pairs) の順序付けられていない集合であり、名前は文字列、値は文字列、数値、ブール値、null、オブジェクト、または配列です。

配列 (Array) は、0個以上の値の順序付けられた列です。

本文書で使用される「オブジェクト (object)」および「配列 (array)」という用語は、JavaScript の慣例に由来します。

JSON の設計目標は、最小限 (Minimal)、ポータブル (Portable)、テキスト形式 (Textual)、そして JavaScript のサブセットであることでした。

1.1. Conventions Used in This Document (本文書で使用される規約)

本文書のキーワード「MUST」、「MUST NOT」、「REQUIRED」、「SHALL」、「SHALL NOT」、「SHOULD」、「SHOULD NOT」、「RECOMMENDED」、「NOT RECOMMENDED」、「MAY」、「OPTIONAL」は、BCP 14 [RFC2119] [RFC8174] に記載されているように解釈されるものとします。ただし、ここに示すように、すべて大文字で表示される場合に限ります。

本文書の文法規則は、[RFC5234] に記載されているように解釈されるものとします。

1.2. Specifications of JSON (JSON の仕様)

本文書は [RFC7159] を置き換えます。[RFC7159] は [RFC4627] を廃止しました。[RFC4627] は元々 JSON を記述し、メディアタイプ "application/json" を登録しました。

JSON は [ECMA-404] でも記述されています。

前文の ECMA-404 への参照は規範的 (Normative) ですが、通常の意味(実装者が本文書を理解するために参照する必要がある)とは異なり、すべての仕様において「JSON テキスト (JSON text)」という用語の定義に不一致がないことを強調するためのものです。ただし、ECMA-404 は、本仕様が最大の相互運用性のために避けることを推奨するいくつかの慣行を許可していることに注意してください。

意図は、異なる記述が使用されているものの、2つの文書間で文法が同じであることです。それらの間に相違が見つかった場合、ECMA と IETF は協力して両方の文書を更新します。

いずれかの文書でエラーが見つかった場合、もう一方の文書に同様のエラーがあるかどうかを確認する必要があります。ある場合は、可能であれば修正する必要があります。

将来いずれかの文書が変更される場合、ECMA と IETF は協力して、変更を通じて2つの文書が整合性を保つようにします。

1.3. Introduction to This Revision (この改訂版の序論)

RFC 4627 の公開以来、JSON は非常に広く使用されるようになりました。この経験により、その仕様では許可されているものの、相互運用性の問題を引き起こす特定のパターンが明らかになりました。

また、RFC 4627(RFC 正誤表 ID 607 [Err607] および 3607 [Err3607] を参照)および RFC 7159(RFC 正誤表 ID 3915 [Err3915]、4264 [Err4264]、4336 [Err4336]、4388 [Err4388] を参照)に関して、少数の正誤表が報告されています。

本文書の目標は、これらの正誤表を適用し、JSON の他の仕様との不一致を取り除き、相互運用性の問題につながる可能性のある慣行を強調することです。