0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

日々の隙間で何かを学ぶAdvent Calendar 2023

Day 14

JSONデータを理解する

Posted at

 今回の記事は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

0
1
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
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?