MENU

【Javascript】JSONについて知る

2021 3/06
【Javascript】JSONについて知る

おつかれさまです。

普段何気なく見ていた「JSON」というものについてですが、
しっかり言語化するためにも今一度中身について調べてみました。

目次

JSONってなんぞや?

結論:データを記述するための表記法のひとつ

まずは結論から。

おそらくこれだけだとなんのこっちゃ?だと思うので以下説明。

前提知識

そもそも「データ」というものは大きく2種類に分類されます。

  • 基本データ型
    • 整数(int):1,2,3
    • 少数(float):.2,.4,.6
    • 文字(char):あいうえお
    • 真偽値(boolean):true or false
  • 複合データ型
    • 配列型
    • 文字列型(文字がいくつか集まったものなので、複合型)
    • クラス、構造体
    • 連想配列(key(キー):value(値)からなるオブジェクトの配列です)

※複数のデータを一つにまとめることでプログラムの表現力を向上させる。

上の2つをもう少しのデータとは違った分類で再度、データというものを切り分けてみます。

・言語定義型
→言語側で予め用意されている型

・ユーザー定義型
→ユーザーが独自に定義した型

これら4つの分類を用いると以下のような表関係が成り立ちます。

基本データ型複合データ型
言語定義型整数、少数文字列、配列
ユーザー定義型なしクラス、構造体

JSONについて

さて、ペラペラとデータ形というものについて述べましたが、これらを踏まえて改めてJSONについて振り返ってみます。

JSONとは

データを表記するための表記法のひとつ

で、結局どんなデータになるん?
→先の表で当てはめるなら、すなわちJSONは「ユーザー定義型の複合データ」といえます。

なので、言葉の通りユーザー側で独自に定義できるデータの塊というようなイメージかと思います。

ちなみにJSONで扱えるデータの種類は以下の6種類になります。

  • 文字列 (“hogehoge”)
  • 数値 (123, 12.3, 1.23e4 など)
  • ヌル値 (null)
  • 真偽値 (true, false)
  • オブジェクト ({ … })
  • 配列 ([…])

■そのほかの特徴

  • 記述が容易で人間が理解しやすいデータフォーマット
  • 拡張子は .json。
  • javascriptに限らず、Java, PHP, Ruby, Python など、様々な言語間のデータ交換で用いられる。
    複数の言語間のやりとりでも使える。

3つめの項目は特に便利そうですね👀

具体例:「人間」をデータで表現してみよう!

ここで実際にJSONを使って「人間」をデータとして表現してみましょう!
表記の仕方もそうですが、こうしてやることで実際にJSONの中身の見え方がより深まるのではないかと思います👀

まず、人間というものを定義するにあたって必要な情報を列挙します。

  • 名前
  • 生年月日
  • 職業
  • 年齢
  • 身長
  • 出身地 etc

みたいな感じでしょうか。

流石に全ての事柄を定義するのには限界があるので、ここではある程度定義する項目を絞るという提にします。

実際に表現した結果↓↓↓↓↓↓↓↓

{
  "human": {
    "name": "太郎", (氏名:太郎)
    "birthday": "1991/01/01", (誕生日:1991年1月1日)
    "job": "programmer", (職業:プログラマー)
    "language": ["PHP", "Javascript", "Ruby"], (使用言語: PHP,Javascript,Ruby)
    "age": "30", (年齢:30)
    "height": "175", (身長:175cm)
    "location": "Tokyo", (在住:東京)
    "website": null, (ウェブサイトの有無:持っていない)
    "married": true (結婚しているか否か:している)
  }
}

以上のようにオブジェクトの表記でデータの表現ができます。

書き方としては、

  • キーをダブルクォーテーションで囲む
  • 文字列をダブルクォーテーションで囲む。 (数字型の場合は囲わなくてOK)

という書き方で、原則、JSON内ではシングルクォート(”)の文字列表現はできません。
あと、undefinedも使えないそうです。

ちなみにJSONの他にはXMLやymlという別の表記法があリますが、書き方が変わるだけで中身の内容は変わりません。
※詳細の記法に関してはここでは割愛します。

JSONはこれらデータ記法の中でも最もメジャーなものになるそうです。

まとめ

JSONとは

  • ユーザー側で独自に定義ができるデータ記法のひとつ(データの塊みたいなもの)
  • 数あるデータ記法の中でも最もメジャーなデータ記法

になります。

ちなみにJSONという言葉ですが、

JavaScript Object Notation(javascriptのオブジェクトの記法)

の頭文字からなる言葉で、jsonそのものがjavascriptのオブジェクトの記法に由来するものになっているそうです。

ほかの言語間でも使用できるのは魅力の一つですよね!

というわけで以上になります。

今までJSONにはさらっと触れてはきましたが詳細まで調べることがなかったので、これを機にJSONに関しての知識が少し深まったのかなと思います。

ここまで読んでいただきありがとうございましたm(__)m


もりけん塾に入っております!

もりた先生のブログ: kenjimorita.jp (武骨日記)
もりた先生のアカウント: twitter.com/terrace_tech

参考

↑おさないさんの解説動画、安定してわかりやすい。

Qiita
JSONとJSオブジェクトの違い - Qiita
JSONとJSオブジェクトの違い - Qiita JSオブジェクト キーをダブル、シングルコーテーションで囲っても囲わなくても良い & 文字列をダブル、シングルクォーテーションで囲む。(数字型の場合は囲わなく...

この記事を書いた人

コメント

コメントする

CAPTCHA


目次
閉じる