IT初心者がピンとこないJSON


入社後の研修でやらなかった範囲が苦手すぎて毎度躓きます。

当たり前のように現場ではJSONが使われていて
当たり前のように人名のイメージしかわかなかった人レベルのメモまとめです。

JSONとは

"JavaScript Object Notation"
「JavaScriptの中でオブジェクトを記述する書式」
データフォーマット(データを扱う際の決まりごと、CSVやXML)の一種。
特に表で表しにくい構造のデータに適している。
拡張子は.json

書式

基本的にkey(名前):value(値)の形で記述。
このかたまりをメンバーという。
メンバーを[](配列)や{}(オブジェクト内)で括る。
そうすれば、名前を指定することでデータを呼び出せるようになる。

sample.json
[
  "user01:{
    "id":0001,
    "name":"ヤマダ タロウ",
    "age":24
  },
  user02:{
    "id":0002,
    "name":"スズキ ハナコ",
    "age":32
  }
]

例えば、「user01の年齢(age)」を指定すると"24"が返ってくるといった感じ。
上記のJSONをXMLで書き換えると以下のようになる。

sample2.xml
<users>
  <user01>
    <id>0001</id>
    <name>ヤマダ タロウ</name>
    <age>24<age>
  </user01>
  <user02>
    <id>0002</id>
    <name>スズキ ハナコ</name>
    <age>32<age>
  </user02>
</users>

行数は同じでも記述量が違うため、JSONの方がすっきりして見えるし、
XMLをJSONにすることで通信時のデータ量削減もできる。

※ XMLについてはこちらでざっくりまとめています。

key(名前)

コロン:の左側に書くひと
XMLのタグと同様、任意の情報名を指定できる。
"name"のように囲う。
プログラミング言語の変数名的な使い方をするイメージ。

value(値)

コロン:の右側に書くひと
keyよりもルールが細かいため注意。

■ 文字列 - string

"apple"など、任意の情報を""で囲んだ記述

■ 数値 - number

15.55など、数値をそのまま書いた記述

■ 真偽値 - boolean

trueもしくはfalseを表現する記述

■ ヌル値 - null

null(値が空っぽ)を表現する記述

■ オブジェクト値 - object

{}でオブジェクトを指定する記述
階層構造を持つことができる

{
  "user":{
    "id":1,
    "name":"George"
  }
}

■ 配列値 - array

[]で配列を指定する記述
配列要素の種類は一致していなくてもよい
配列内にオブジェクト(後述)や配列が入っているパターンもある
配列内の要素はインデックスで取り出す

{
  "color_list":["red", "blue", "green", "yellow"],
  "number_list":[1, 28, 396],
  "object_list":[
    {"id":1, "name":"George"},
    {"id":2, "name":"Nancy"}
  ]
}

(個人的には、情報を持っているのがオブジェクト{}、値を持っているのが配列[]というイメージで判断しています)

おわりに

今回は「初めてJSONにぶち当たったときの読み方」といったところでまとめました。
使い方についてはまだまとめきれていないので、追々やっていければと思います。

参考

  1. JSONの形式を完全理解して読み書きできるようになるための記事
  2. JSONとはなにかpackage jsonやjson shcemaなども含めて解説!
  3. JSONってなにもの?
  4. 非エンジニアに贈る「具体例でさらっと学ぶJSON」
  5. JSON入門