tanaka101

JSON

別名: JavaScript Object Notation, ジェイソン

JSONとは、データをやり取りするための書き方のルール(フォーマット) です。
人間にも読みやすく、プログラムでも扱いやすいため、現在のソフトウェア開発における デファクトスタンダード(事実上の標準) となっているデータ形式です。

なぜJSONが必要なのか

たとえば、天気予報アプリを作るとします。
サーバーから「東京の天気は晴れ、気温は25度」という情報を受け取りたいとき、 この情報をどんな形で送ればいいでしょうか?

普通の文章で送ると、プログラムが内容を正しく読み取るのが難しくなります。
そこで、決まったルールに沿った書き方でデータを送る必要があります。それがJSONです。

{
  "city": "東京",
  "weather": "晴れ",
  "temperature": 25
}

このように書けば、人間が見ても内容がわかるし、プログラムも正確にデータを取り出せます。

JSONの基本ルール

JSONにはいくつかのルールがあります。

ルール内容
キーは文字列キー(名前)は必ずダブルクォーテーション("")で囲む
値のデータ型文字列・数値・真偽値(true/false)・null・配列・オブジェクトが使える
文字列はダブルクォーテーションシングルクォーテーション('')は使えない
末尾のカンマ禁止最後の要素の後ろにカンマ(,)を付けるとエラーになる
コメントは書けない// や /* */ でコメントを入れることはできない

JSONで使えるデータ型

{
  "name": "田中太郎",
  "age": 30,
  "isStudent": false,
  "address": null,
  "hobbies": ["読書", "プログラミング", "散歩"],
  "scores": {
    "math": 85,
    "english": 92
  }
}
  • "name" → 文字列(ダブルクォーテーションで囲む)
  • "age" → 数値(クォーテーション不要)
  • "isStudent" → 真偽値(true または false
  • "address" → null(値がないことを示す)
  • "hobbies" → 配列([] で囲んだリスト)
  • "scores" → オブジェクト({} で囲んだ入れ子構造)

身近なサイトでの利用例

JSONは日常的に使われています。

場面利用例
Web API天気・ニュース・SNSなど、ほぼすべてのAPIがJSON形式でデータを返す
設定ファイルpackage.json(Node.js)、tsconfig.json(TypeScript)などの設定
データ保存ローカルストレージに保存するデータもJSON形式に変換して保存する
通信フロントエンドとバックエンド間の通信や、バックエンドのサービス同士のデータ送受信

たとえば、ブラウザで F12 を押して開発者ツールの「Network」タブを見ると、 Webサイトがサーバーとやり取りしているJSONデータを確認できます。

JavaScriptのオブジェクトとの違い

JSONはJavaScriptのオブジェクト記法をもとに作られましたが、いくつかの違いがあります。

項目JavaScript オブジェクトJSON
キーのクォーテーション省略できる必ずダブルクォーテーションが必要
末尾のカンマ許可されている禁止
コメント書ける書けない
関数値に設定できる設定できない
用途プログラム内部のデータ構造データの保存・通信用フォーマット
// JavaScriptオブジェクト(プログラム内で使う)
const user = {
  name: "田中",  // キーにクォーテーション不要
  age: 30,       // 末尾カンマもOK
};
 
// JSON(データ通信や保存に使う)
// {"name": "田中", "age": 30}

JSONは「JavaScriptで生まれた記法」ですが、今ではPython・Java・Ruby・PHPなど、 たくさんのプログラミング言語で利用できます。JavaScript専用のものではありません。

かつて主流だったXMLに代わり、現在では多くのWeb API等がJSONを採用しています。

まとめ

  • JSONはデータをやり取りするための書き方のルール(フォーマット)
  • Web APIや設定ファイルなど、ソフトウェア開発のあらゆる場面で使われている
  • JavaScriptのオブジェクトに似ているが、より厳格なルールがある