今回の記事はJSONの理解を深める記事を書いていきます。
JSONとは
JSONデータは以下のようなデータ構造になっています。(ChatGPT作成)
[
{
"name": "山田太郎",
"age": 25,
"isStudent": true,
"hobbies": ["読書", "映画鑑賞", "旅行"],
"address": {
"city": "東京",
"postalCode": "100-0001"
},
"siblings": null
},
{
"name": "佐藤花子",
"age": 22,
"isStudent": false,
"hobbies": ["料理", "ガーデニング", "写真撮影"],
"address": {
"city": "大阪",
"postalCode": "530-0001"
},
"siblings": 1
}
]
JSONはJavaScriptを元にしている!?
JSONは、Java Script Object Notationの頭文字をとったものです。名前の通り、もともとはJava Scriptで定義されたオブジェクト記法の一つだったのです。それが、今では多くの言語で使用されています。
JSONデータの特徴
JSONデータの特徴を挙げていきましょう
- テキストベース
- キーと値のペア
- 非言語依存
- シンプルな構文
テキストベースでシンプルな構文のため、軽量のデータとされています。
JSON構文に登場する記号
JSONの構文に使用する記号を挙げていきます。
波括弧 {}
オブジェクトを定義する際に使用します。オブジェクトはキーと値のペアの集合です。
{ "name": "John", "age": 30 }
ここでは、nameがキー、Johnがnameキーに対応する値です。
角括弧 []
配列を定義する際に使用します。配列は順序付けられた値のリストです。
[ "apple", "banana", "cherry" ]
コロン :
オブジェクト内のキーと値を区切る際に使用します。
{ "name": "John" }
カンマ ,
オブジェクトの異なるキーと値のペアや、配列の異なる要素を区切る際に使用します。
{ "name": "John", "age": 30 } // オブジェクト
[ "apple", "banana", "cherry" ] // 配列
二十引用符 "
文字列の値を囲む際に使用します。JSONでは、キーも二十引用符で囲む必要があります。
{ "name": "John" } //"name"と"John"は両方とも二十引用符で囲まれている
エスケープ \(¥マーク)
文字列の値の中に構造で使用する文字を入れるときに使用します。
{ "request": "I want \"money\" !" } // データとしては「I want "money" !」
文字列の中に二十引用符などの構文に使用している文字を入れる場合は\を付けます。そのほかにも改行(\n)やタブ(\t)を入れるときに使用します。
JSONは構造化データか
データ型の中でも、列と行のように明確に定められた構造に成形されたデータを構造化データと言います。ExcelファイルやSQLデータベースなどが構造化データに当たります。では、JSONは構造化データに入るのでしょうか。答えは NOです。
JSONは列と行のように完全に構造化されていないため、構造化データには入りません。しかし、ある程度は構造が決まっているため、 半構造化データと呼ばれています。JSON以外の半構造化データはXMLなどです。
JSON成形ツール
JSONデータは改行やタブが入っていると構造が見やすく、人間にとって理解しやすいですが、そのままデータとして取り込むと不具合が起こる場合もあります。そのため、データを成形する必要が出てきます。
参考
https://qiita.com/momonoki1990/items/cd9a65498c2b16b0ed55
https://and-engineer.com/articles/YUrUYBAAACUA2zGd