見出し画像

【プログラミング初心者】JSONの構成について

 こんにちは〜インフラエンジニアのtamolabです!
今日はJSONの構成についてまとめてみたいと思います!

1. JSONファイルとは

画像5

 JSONとは「JavaScript Object Notation」の略で、「JavaScriptのオブジェクトの書き方を元にしたデータ定義方法」のことです。ただ、データを定義しているだけなので、役割的にはCSVやXMLと同じなのですが、

・CSVと比較して、より階層的な柔軟な定義が可能
・XMLと比較して、構文解析が不要

のようなメリットがあると思っています。最近ではWeb開発意外にも私のようなインフラエンジニアもJSONを無視できなくなってきました。特にSaaS導入した後のREST APIを利用についてはJSONを利用しないてはないと思います。

2. 基本的な構成

画像4

 JSONは、{ } の中でデータを定義するのですが、"キー"と"値"を転んで区切ってデータ定義していきます。(シングルクオテーションだとエラーになるのでご注意ください。)

{ "key" : "value"}

カンマで区切ると複数のデータを定義できます。また、下記のように改行してもJSONの構成を担保できます。

{ "given_name" : "Taro", "family_name" : "Yamada", "age" : 28 }
(上記を改行すると。。)
{
         "given_name" : "Taro",
         "family_name" : "Yamada",
         "age" : 28
}

3. JSONで扱えるデータ型

画像6

JSONでは次のデータ型に対応が可能です。

・文字列
・数字
・ヌル値
・真偽値
・オブジェクト
・配列

【文字列 :"..."

 文字列は基本的になんでも利用できますが、ダブルクォーテーション(“)、バックスラッシュ(\)などは利用できません。

{ "date_type01" : "文字列も定義できます。日本語でも可能です" }

数値123

 数値も利用できますが、数値はダブルクオテーションを囲みません。(ダブルクオテーションで囲むと文字列として扱われます)

{
   "date_type02_1" : "1"
   "date_type02_2" : 1
}

上記のdata_type01は文字列としての「1」、data_type02は数字としての「1」になります。

ヌル値null

 ヌル値は全て小文字で利用可能です。これもダブルクオテーションで囲むことによって、文字列扱いになるので注意してください。

{ "date_type03" : null }

真偽値true, false

 bool値(true or false)の指定も可能です。これもダブルクオテーションで囲むことによって、文字列扱いになるので注意してください。

{ "date_type04_1" : true,  "date_type04_2" : false }

オブジェクト{ ... }

 オブジェクトの中にオブジェクトを定義することができます。これがJSONのいいところでもあり悪いところでもあります。(ネストすると言います。)ネストすることで、よりリッチに階層的な情報を定義できますが、ネストが続くと複雑なJSONになってしまします。下記の例でも既に見にくくなったと思います。(改行すると見やすいですね)

{ "date_type05" : { "nest_data_type05" : "nest01" } }
(上記を改行すると。。)
{
        "
date_type05" : {
                    "nest_data_type05" : "nest01"
          }
}

配列[...])】

 配列は[ ]を利用して定義します。オブジェクトでは { } を利用していますが、記載方法が異なるのでご注意ください。配列内の要素はコンマで区切ることができます。

{ "date_type06" : [ 1, 2, 3, 4 ] }

以上でデータ型の紹介は終わりです。これらのデータ型を利用したJSONを一つ作ってみます。

{
       "familu_name" : "太郎",
       "given_name" : "山田",
       "middle_name" : null,
       "detail" : {
              "age" : 28,
              "favorite" : [
                     "水泳",
                     "json",
                     "桃"
              ],
              "mac_user" : true
       }
}

(改行なしバージョン)
{"family_name":"太郎","given_name":"山田","middle_name":null,"detail":{"age":28,"favorite":["水泳","JSON","桃"],"mac_user":true}}

4. jqコマンドを利用したJSONの扱い

画像3

 過去にどでかいJSONファイルを簡単に扱う方法も紹介しているので、こちらとセットで見ていただくといいかもしれません。

5. キーワード

画像2

#IT #インフラエンジニア #ネットワークエンジニア #プログラミング #json #データ構造 #CSV #XML

6. お問い合わせ

画像1

 本投稿のコメントでも構いませんし、下記からお問い合わせいただいても大丈夫です。
 note.tamolab@gmail.com

サポートをお願いいたしますmm もしXXXXな記事を書いて欲しい、XXXXな記事は不適切だなどのご要望がありましたら、お知らせください!