JSONとは

JSONの概要

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

JSON

  • 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"
    }
  ]
}

参考