JSONとは
JSONの概要
JSONはJavaScript Object Notationの略であり、データ交換に使う軽量なテキスト形式である。人が読み書きしやすく、多くのプログラミング言語で利用できる。

- JSONはDouglas Crockford氏によって広く普及した。
- JSONファイルでは通常
.json拡張子を使う。 - インターネットメディアタイプは
application/jsonである。 - システム間で交換するJSONテキストはUTF-8でエンコードする。
主な用途
- Webクライアントとサーバー間の構造化データ送信
- Web APIの構築
- 設定値やアプリケーションデータの保存
- 異なる言語で書かれたプログラム間のデータ交換
構文
JSONの値には、オブジェクト、配列、文字列、数値、真偽値、null がある。
| 型 | 説明 |
|---|---|
| Number | 整数または小数。指数表記も利用できる |
| String | 二重引用符で囲んだUnicode文字列 |
| Boolean | true または false |
| Array | 順序を持つ値のリスト |
| Object | 名前と値のペアの集合 |
null |
空の値 |
数値
数値には引用符を付けない。
{ "marks": 97 }
JSONでは16進数表記、NaN、無限大を利用できない。
文字列
文字列には二重引用符を使う。
{ "name": "Amit" }
代表的なエスケープシーケンスには \"、\\、\/、\b、\f、\n、\r、\t、\uFFFF がある。
真偽値とnull
{
"distinction": true,
"deletedAt": null
}
配列
配列は角括弧で囲んだ順序付きリストである。
{
"books": [
{ "language": "Java", "edition": "second" },
{ "language": "C++", "edition": "fifth" },
{ "language": "C", "edition": "third" }
]
}
オブジェクト
オブジェクトは、一意な文字列キーと値を持つ。
{
"id": "011A",
"language": "JAVA",
"price": 500
}
JavaScriptでJSONを扱う
JSONに似た形のJavaScriptオブジェクトは、オブジェクトリテラルで作成できる。
var book = {
"name": "JSON Guide",
"price": 500
};
document.write(book.name);
厳密なJSONは実行可能なJavaScriptではなく、データ形式である。JSONテキストを読み取るには JSON.parse()、JavaScriptの値を直列化するには JSON.stringify() を使う。
var text = '{"name":"JSON Guide","price":500}';
var book = JSON.parse(text);
var serialized = JSON.stringify(book);
例
{
"book": [
{
"id": "01",
"language": "Java",
"edition": "third",
"author": "Herbert Schildt"
},
{
"id": "07",
"language": "C++",
"edition": "second",
"author": "E. Balagurusamy"
}
]
}