【プログラミング】【設定】JSONファイルについて - j-komatsu/myCheatSheet GitHub Wiki
JSONファイルについて
📌 初学者向け
JSONとは?
JSON(ジェイソン)は「JavaScript Object Notation」の略で、データを構造化して表現するための軽量フォーマットです。
主にAPIや設定ファイルで使用されます。
📦 たとえば、箱に名前や住所の情報を詰めて送るようなイメージです。
特徴まとめ
特徴 | 内容 |
---|---|
軽量 | テキストベースでシンプルな構造 |
読みやすい | 人間にも機械にも読みやすい形式 |
データ交換に便利 | JavaScriptをはじめ、多くの言語がサポート |
構造化データ | オブジェクトや配列などネスト構造に対応 |
JSONの基本構造
{
"name": "Taro",
"age": 25,
"isStudent": true
}
{}
はオブジェクト(連想配列)"key": value
の形でデータを格納- 文字列はダブルクオート
" "
で囲む
読み方の例(たとえ話)
{
"name": "Hanako",
"hobby": ["reading", "swimming"]
}
これは「Hanakoさんは読書と水泳が趣味です」と読むことができます。
Mermaid.jsでの構造フロー図
graph TD;
JSON --> name["name: 'Hanako'"]
JSON --> hobby["hobby: ['reading', 'swimming']"]
JSONの使用例(設定ファイル)
{
"appName": "myApp",
"version": "1.0.0",
"debug": false
}
これはアプリの設定ファイルとして使えます。
🔍 専門者向け
データ型一覧
型名 | 例 | 備考 |
---|---|---|
文字列 | "text" | ダブルクオート必須 |
数値 | 123 | 整数・小数どちらもOK |
真偽値 | true / false | 小文字 |
null | null | 値なし |
配列 | [1, 2, 3] | 順序ありのデータ集合 |
オブジェクト | {"key": "value"} | キーと値のペア |
ネストされたJSONの例
{
"user": {
"id": 1,
"profile": {
"name": "Jiro",
"skills": ["JavaScript", "Python"]
}
}
}
user
→profile
→skills
のように階層的にデータを持つことが可能。
入出力の具体例(JavaScript)
入力データ(JSON形式)
{
"title": "Example Book",
"price": 1800,
"inStock": true
}
JavaScriptで読み込む
const data = `{
"title": "Example Book",
"price": 1800,
"inStock": true
}`;
const parsed = JSON.parse(data);
console.log(parsed.title); // → "Example Book"
JavaScriptで出力する
const obj = {
title: "New Book",
price: 2000,
inStock: false
};
const jsonString = JSON.stringify(obj, null, 2);
console.log(jsonString);
JSONと他フォーマットの比較表
比較項目 | JSON | YAML | XML |
---|---|---|---|
可読性 | ◎ | ◎ | △ |
記述量 | △(記号が多い) | ◎(シンプル) | △(冗長) |
機械処理 | ◎ | ○ | ◎ |
コメント記述 | × | ◎ | ◎ |
JSONを扱う注意点
- コメントは書けない
- 文字列は必ずダブルクオート(シングル不可)
- 最後のカンマ(
,
)は禁止 - ネストが深すぎると可読性が低下する
🛠 JSONを扱う便利ツール
ツール名 | 用途 | URL |
---|---|---|
JSONLint | フォーマット検証 | https://jsonlint.com/ |
quicktype | 型定義自動生成 | https://quicktype.io/ |
jq | CLIでJSON処理 | https://stedolan.github.io/jq/ |
✅ まとめ
- JSONは「データをやりとりするための共通言語」
- オブジェクト・配列・文字列など基本を押さえれば誰でも扱える
- 実装では
JSON.parse()
やJSON.stringify()
を活用しよう