0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

JSONのまとめ(メモ用)

Last updated at Posted at 2020-04-22

自分のメモ用に、学んだことを書きます。
業務でAPIを触る機会があり、「JSONは知っているか?なにかと使うだろうから覚えておくといい」という話をされたので、復習も兼ねてJSONについてまとめていきます。
※まだメモ用程度なので、今後も追記していく予定です。

JSONとは

JSONとは「JavaScript Object Notation」の略で、データをやりとりする形式の一種。
もともとはJavaScriptと他の言語をやりとりをするために考えられた、オブジェクトを表記するための書き方の決まりごとである。
ファイルの中身はただのテキストデータなので人間が見ても内容を理解することができる。ファイルの拡張子は."json"。
下記は東京タワーの住所を表しているJSONファイルである。

zipcode.json
		{
			"address1": "東京都",
			"address2": "港区",
			"address3": "芝公園",
			"kana1": "トウキョウト",
			"kana2": "ミナトク",
			"kana3": "シバコウエン",
			"prefcode": "13",
			"zipcode": "1050011"
		}

JSONの構造をみていく

JSONは右と左に文字があり、真ん中が:(コロン)で区切られている。
左辺は「メンバー」と呼ばれ、文字列の値で書かれている。
右辺は「値」と呼ばれ、全部で6種類存在する。

まずは右辺の説明から。

文字列値(string):"abc"や"def"等、任意の情報をダブルクオートで囲んだ記述。
数値(number):1や23.45等、数値をそのまま書いた記述。
真偽値(boolean):true及びfalseという「yes/no的な意味合い」を表現する特別な記述。
ヌル値(null):nullという「値がカラッポであること」を表現する特別な記述。
配列値(array):[]や[1]や[1,true]等、0〜複数個の値の並びを表現する記述。
オブジェクト値(object):{}や{"foo":"bar"}や{"foo":"bar", "baz":null}。
※一方、下記は「値」ではありません。
abcやd"ef"や"ab(全体がクオートされていなかったり閉じていない。)
TRUEやNULL(大文字と小文字は区別する。)
[1][2,3]や[1],[2,3]や{}{}(複数の値がつながったものは値ではない。)

次に左辺について。

"foo": "hoge"
"bar":"fuga"
"baz":1
"qux":[]
※一方、下記は「メンバー」ではありません。
1:2(左辺が文字列値じゃない。)
"foo";"bar"や"foo"や1(コロンがない。)
"foo":"bar":"baz"(コロンが2つ以上ある。)
"foo":hoge(右辺が値じゃない。)
【非エンジニアに贈る「具体例でさらっと学ぶJSON」】より抜粋

なぜJSONが通信用のデータ交換として利用されているのか

テキストデータであるJSONは軽量かつオブジェクト構造になっている。
このことから、これまで使われていた冗長なXMLデータに比べて通信時のデータ量を削減することができる。
また、構造をみてわかるとおり、JSONは配列値からオブジェクトまで幅広く取り扱うことができる。このことから、複雑なデータもJSONでは取り扱うことができるとわかる。

引用元

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?