JSON
JSONはシステム間のデータの交換によく使われるデータフォーマットだ。
YAMLとの違いを理解して状況に応じて適切な選択、データ構造設計、データ処理ができるようになろう。
YAMLについてはこちらで触れているので参考にしてほしい。
基本情報
特徴
- 当初はAjaxの開発者達から注目された
- 単純なので実装した言語が多く、異なる言語間でのデータ受渡しに適している
- 同じ理由でXMLプロセッサのように攻撃の対象になる可能性が低い
- これらの理由でWeb APIプログラミングでよく使われている
- データ構造をオブジェクトと配列で表現する
- トークンとトークンの間のどこにでも空白を挿入できる
- コメント機能はない
YAMLとの比較
- 仕様上はYAML1.2の「フロースタイル」のサブセット
- インデントや空白は意味を持たない
- 8進数、16進数、日付やタイムスタンプは対応していない
- 一重引用符は使えない
- コメントがなく、括弧が必要なためYAMLと比較すると人間が読み書きするのに適さない
オブジェクト
- 順序付けされない名前/値のペアのセット
- 複数のキー/値のペアを{}で囲む
- キーの後ろにはコロン
- キー/値のペアはコンマで区切られる
- キーとして使うデータ型は文字列に限る
- キーは文字列なので2重引用符で囲む必要がある
{ "name": "Taro", "age": 30 }
配列
- 順序付けされた値の集まり
- 複数の値を []で囲む
- 値はコンマで区切られる
- 全ての型のデータを値として入れることができる
"colors": [ "blue", "yellow, "red" ],
値
以下のデータ型に対応
- 数値(整数、浮動小数点数)
- 文字列
- 真偽値(true と false)
- null
- 配列
- オブジェクト
文字列
- 2重引用符で囲う
- 1置重引用符はだめ
数値
- 8進数および16進数の形式が使えない