RFC 7159 - The JavaScript Object Notation (JSON) Data Interchange Format
- ステータス: Proposed Standard
- 発行日: March 2014
- ストリーム: IETF
- 廃止: RFC4627, RFC7158
- 廃止: RFC8259
- エラッタ: エラッタなし
概要 (Abstract)
JavaScript Object Notation (JSON) は, 軽量でテキストベース, 言語に依存しないデータ交換フォーマットです。ECMAScriptプログラミング言語標準に由来します。JSONは, 構造化データの移植可能な表現のための小さなフォーマット規則のセットを定義します。
この文書は, 他のJSON仕様との不整合を排除し, 仕様エラーを修正し, 経験に基づいた相互運用性ガイダンスを提供します。
JSONの中核概念
データ型
JSONは以下のデータ型をサポートします:
プリミティブ型 (Primitive Types):
string- 文字列number- 数値boolean- ブール値 (true/false)null- null値
構造化型 (Structured Types):
object- オブジェクト (順序付けられていないキー値ペアの集合)array- 配列 (順序付けられた値のシーケンス)
構文の例
オブジェクト (Object):
{
"name": "張三",
"age": 30,
"city": "北京"
}
配列 (Array):
[1, 2, 3, 4, 5]
ネストした構造:
{
"users": [
{"name": "Alice", "age": 25},
{"name": "Bob", "age": 30}
],
"total": 2
}
RFC 4627からの主な変更点
- JSONテキスト定義の緩和: JSONテキストをオブジェクトや配列だけでなく, 任意のJSON値として許可
- 正誤表の修正: RFC 4627で報告されたエラーを修正
- 相互運用性ガイダンス: 実装の相互運用性に関するより多くのアドバイスを提供
- エンコーディングの明確化: UTF-8エンコーディングの使用を強調
関連リソース (Related Resources)
- 公式原文: RFC 7159 (TXT)
- 公式ページ: RFC 7159 DataTracker
- 廃止: RFC 4627 (旧JSON仕様)
- 廃止される: RFC 8259によって廃止されました
- メディアタイプ:
application/json - ファイル拡張子:
.json
クイックリファレンス
MIMEタイプ
Content-Type: application/json; charset=UTF-8
よく使用されるツール
オンライン検証:
プログラミング言語のサポート:
JavaScript:
const obj = JSON.parse('{"name":"Alice"}');
const str = JSON.stringify({name: "Bob"});
Python:
import json
obj = json.loads('{"name":"Alice"}')
str = json.dumps({"name": "Bob"})
Java:
// JacksonまたはGsonライブラリを使用
ObjectMapper mapper = new ObjectMapper();
MyObject obj = mapper.readValue(jsonString, MyObject.class);
重要な注意: RFC 7159はRFC 8259によって置き換えられましたが, JSONの進化の歴史を理解するための重要な文書です。最新のアプリケーションは, 現在の標準としてRFC 8259を参照すべきです。