今更ながら JSON のおさらい

一昔前(もっと前かもしれませんが..)には、データ交換のフォーマットといえば XML 、という時期がありました。

その流れで SOAPWSDLBPEL 、ESB などが生まれましたが、複雑すぎたのか、堅すぎたのか、最近ではあまり見ることがありません。(大規模な基幹システムなどでは採用されているのかもしれませんが)

最近の Web ベースの API でよく見るフォーマットは JSON です。

JSON は、JavaScript Object Notation の略であり、もともとは JavaScript のオブジェクトをあらわすものであったわけですが、その仕様は JavaScript の言語仕様に強く結びついているわけではないため、様々なデータを表現するのにばっちりはまりました。
API のコールを JavaScript で行う場合、レスポンスが JSON の場合はレスポンスの取り扱いが非常に容易であることもその一因かと思います。

そこで今更ながら、JSON の基本をおさらいしたいと思います。
厳密な仕様は http://json.org/ へ。

以下の6種類。

  • 文字列
  • 数値
  • 真偽値
  • null
  • 配列
  • オブジェクト


書き方

文字列 ダブルクォーテーションでくくる。
文字列にダブルクォーテーションを含める場合は、バックスラッシュでエスケープする。
"hoge"
"f\"oo"
など。
数値 数字をそのまま書く。
123
-234
12.6
など。
真偽値 true か false と書く。
null null と書く。
配列 [ と ] でくくり、カンマで各要素を区切る。すべての種類の値を要素にできる。
[1, 2, "hoge", false, null, [3, 2]]
など。
オブジェクト オブジェクトはキーと値のペア。キーは文字列でなければならない。値にはすべての種類の値を指定できる。
キーと値はコロンで区切り、キーと値のセットはカンマで区切る。
{ "price":1200, "title":"ほげほげ" }
など。


値の種類を組み合わせた例

{
  "hoge": [1, 2, {"foo":"aaa", "bar":"bbb"}],
  "piyo": { "key1":100, "key2":200 },
  "piyopiyo": 60.3
}