![見出し画像](https://assets.st-note.com/production/uploads/images/46923143/rectangle_large_type_2_bfae2cc13571e6dd7283f9c62e008002.png?width=1200)
【プログラミング初心者】JSONの構成について
こんにちは〜インフラエンジニアのtamolabです!
今日はJSONの構成についてまとめてみたいと思います!
1. JSONファイルとは
JSONとは「JavaScript Object Notation」の略で、「JavaScriptのオブジェクトの書き方を元にしたデータ定義方法」のことです。ただ、データを定義しているだけなので、役割的にはCSVやXMLと同じなのですが、
・CSVと比較して、より階層的な柔軟な定義が可能
・XMLと比較して、構文解析が不要
のようなメリットがあると思っています。最近ではWeb開発意外にも私のようなインフラエンジニアもJSONを無視できなくなってきました。特にSaaS導入した後のREST APIを利用についてはJSONを利用しないてはないと思います。
2. 基本的な構成
JSONは、{ } の中でデータを定義するのですが、"キー"と"値"を転んで区切ってデータ定義していきます。(シングルクオテーションだとエラーになるのでご注意ください。)
{ "key" : "value"}
カンマで区切ると複数のデータを定義できます。また、下記のように改行してもJSONの構成を担保できます。
{ "given_name" : "Taro", "family_name" : "Yamada", "age" : 28 }
(上記を改行すると。。)
{
"given_name" : "Taro",
"family_name" : "Yamada",
"age" : 28
}
3. JSONで扱えるデータ型
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の扱い
過去にどでかいJSONファイルを簡単に扱う方法も紹介しているので、こちらとセットで見ていただくといいかもしれません。
5. キーワード
#IT #インフラエンジニア #ネットワークエンジニア #プログラミング #json #データ構造 #CSV #XML
6. お問い合わせ
本投稿のコメントでも構いませんし、下記からお問い合わせいただいても大丈夫です。
note.tamolab@gmail.com
サポートをお願いいたしますmm もしXXXXな記事を書いて欲しい、XXXXな記事は不適切だなどのご要望がありましたら、お知らせください!