jsonとは
jsonとはJavaScript Object Notation、JavaScriptの書き方に由来している軽量のデータ交換用のフォーマット(lightweight data-interchange format)。
厳密にJavaScriptの団体が準備したもの、と言う訳では無いようですが、JavaScriptの仕様書「ECMA-262」に乗っ取った記法。
jsonの構造
構造は2種類この構造でまとめることで、様々なプログラム言語でデータ交換が出来るようになる。
- 名前と値のペア。多くの言語でオブジェクト、データ、辞書、ハッシュテーブル、リスト、行列として認識される。
- 値のリスト。多くの言語で行列(array)、ベクトル(ベクタ)(vector:「方向と大きさ」のように、互いに独立な複数の異なる値の組み合わせとして表される量)、リスト(list)、シークエンス(sequence:順番に並んだ一続きのデータや手順)として認識される。
以下のフォーマットで扱われる
オブジェクト
オブジェクトは名前と値のペア。
波括弧”{}”(かつては中括弧と呼ばれていた様ですが、今は波括弧が主流の様です。英語ではcurly bracket)で全体を囲い、データの大きな括りごとに同様に波括弧でまとめ、中身をコロン”:”で設定したname-valueペアをコンマ”,”で並べたデータ形式になります。
行列
行列(array)型は 値を並べたもの。
行列は角括弧”[]”(同様に過去は大括弧、英語はbracket)で囲われた、コンマ”,”で区切られたデータ。
値
値はダブルクオート(double quotes)「”」 で囲われた文字列(string)、もしくは数字(number)、論理値(true or false)、ヌル値(null:何もデータが無い状態)、オブジェクト、行列がなることが出来る。
また、これらはネスト出来る(入れ子構造に出来る)
他にも文字列(string)、数字(number)があるが以外と注意した方が良さそうなのがwhitespace。
whitespace
データに含まれる空白(whitespace)については、いくつかのUnicode コードポイントをホワイトスペースとして定めている様だ。
- U+0009 CHARACTER TABULATION <TAB>
- U+000B LINE TABULATION <VT>
- U+000C FORM FEED <FF>
- U+0020 SPACE <SP>
- U+00A0 NO-BREAK SPACE <NBSP>
- U+FEFF ZERO WIDTH NO-BREAK SPACE <ZWNBSP>
および その他のカテゴリ “Zs” Unicode の他の “Separator, space” コードポイント <USP> に属するすべての文字が空白として扱われているとの事。
一般的にコードの機能として不要なもの達。
次は簡単に使ってみる。
コメント