📝

JSONとは(初投稿)

2023/06/13に公開

はじめに

ARグルメレビューアプリを開発する上で、バックエンドでの API の作成やフロントエンドでの API フェッチなど、データのやりとりについて学びました。
実際に触れて、感覚が残ってるうちにメモを残しておこうと思います(これからも更新していく予定です)

JSON(JavaScript Object Notation)とは

テキストベースのデータ交換形式の一つ
プログラム間でデータを簡単に送受信するために使われる
データのやり取りを行う時に、異なるプログラムでも認識できるようにする共通の言語的なもの(イメージ:人間界でいう英語みたいなもの)

特徴:

1. 人間にとって読み書きが容易

Keyと Value を{ }の中にコロンで区切って記載していく

{"Key": "Value"}
{"Key": "Value", "キー": "値", "Key1": "Value1"} #複数の場合はカンマで区切る
{

 "Key": "Value",

 "キー": "値",

 "Key1": "Value1"

} #インデントや改行をするのもあり

他のテキストフォーマットと比較

**CSV**

  ID,Name,Height
  1,Takeshi,160
  2,Hanako,150
  3,Yuji,180

XML

<XML>
 <Person>
  <ID>1</ID>
  <Name>Takeshi</Name>
  <Height>160</Height>
 </Person>
 <Person>
  <ID>2</ID>
  <Name>Hanako</Name>
  <Height>150</Height>
 </Person>
 <Person>
  <ID>3</ID>
  <Name>Yuji</Name>
  <Height>180</Height>
 </Person>
</XML>

JSON

{
 [
  "ID": 1,
  "Name": "Takeshi",
  "Height": 160
 ],
 [
  "ID": 2,
  "Name": "Hanako",
  "Height": 150
 ],
 [
  "ID": 3,
  "Name": "Yuji",
  "Height": 180
 ]
}

JSON めっちゃ読みやすい!

2. マシンにとっても簡単にパースや生成を行うことが可能

JSON 形式で受け取ったデータをプログラムで扱える形式(オブジェクト)に変換できる
(その逆も然り)

3. 多くのプログラミング言語で活用されている

JSON はプログラミング言語に依存しないデータ形式で、多くの言語には JSON を読み書きするためのコード(モジュール)が用意されている

使用例

  1. Web API: Web API はクライアントとサーバ間でデータを交換するためのインターフェースで、多くの場合、JSON 形式でデータを送受信する。クライアント(例:Web ブラウザやモバイルアプリ)は API にリクエストを送信し、サーバは JSON 形式のレスポンスを返す
    イメージ:フロントとバックエンド間での API とのやりとり
  2. データストレージ: NoSQL データベース(例えば、MongoDB)は JSON 形式のデータを直接保存することが可能。これにより、データを構造化し、クエリを簡単に行うことが可能に
  3. 設定ファイル: 多くのプログラミング言語やフレームワークでは、設定ファイルを JSON 形式で記述する。JSON のシンタックスは人間にとって読み書きが容易で、さまざまなプログラミング言語でサポートされているため、広く使用される
  4. データシリアライゼーション: システム間、またはプロセス間でデータを送信する場合、データは送信可能な形式にシリアライズ(変換)される。JSON はこのシリアライゼーションのための一般的な形式で、データをテキスト形式に変換し、その後、受信側でデシリアライズ(元の形式に戻す)することができる

最後に

AR機能を取り入れたグルメレビューアプリを開発していく中で、色々な技術に触れていっているので、忘れないうちに少しずつメモを残していきたいと思います

参考

https://cloudapi.kddi-web.com/magazine/json-javascript-object-notation
https://qiita.com/momonoki1990/items/cd9a65498c2b16b0ed55
https://developer.mozilla.org/ja/docs/Learn/JavaScript/Objects/JSON
https://qiita.com/Morio/items/7538a939cc441367070d

GitHubで編集を提案

Discussion