
【JavaScript入門】JSON
JSON(JavaScript Object Notation)は「人にも機械にも読みやすい」テキスト形式のデータ交換フォーマットです。JavaScript のオブジェクト表記に似ていますが、プロパティ名・文字列は必ず ダブルクォーテーション " "
で囲み、undefined
や関数は含められません。Ajax/Fetch/Web API などブラウザ通信の“共通言語”として使われます。

1.JSON の基礎
項目 | 内容 |
---|---|
拡張子 | .json |
扱える型 | オブジェクト / 配列 / 文字列 / 数値 / true / false / null |
使えない型 | undefined / 関数 / Symbol など |
主な用途 | Web API レスポンス、設定ファイル、ローカルストレージ保存 |
1.1. ネスト構造
JSON はオブジェクトと配列を自由に入れ子にできます。
{
"shop": "Cafe Latte",
"menu": [
{"name": "ホットコーヒー", "price": 450},
{"name": "チョコケーキ", "price": 500}
],
"open": true,
"note": null
}
1.2. シングル vs ダブルクォート
文字列・キーは “必ず” " "
。' '
や ` `
は無効なので注意します。
2.組み込み JSON
オブジェクト
メソッド | 説明 |
---|---|
JSON.stringify(obj) | オブジェクト → JSON 文字列 |
JSON.stringify(obj, null, space) | 整形して出力(space = インデント文字列) |
JSON.parse(text) | 文字列 → オブジェクト(失敗で例外) |
2.1. stringify
のポイント
- 循環参照があると例外
- 関数や
undefined
は出力から除外
2.2. parse
のポイント
- 無効な JSON は SyntaxError
- 日付文字列は自動で
Date
に変換されない(自前で処理)
3.サンプルプログラム
ファイル名: json-demo.html
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8" />
<title>🗂️ JSON の基礎デモ</title>
<style>
body{font-family:"Segoe UI",sans-serif;margin:2rem;background:#f9fbff}
h1{text-align:center;font-size:1.8rem;margin-bottom:1rem}
button{padding:.6rem 1.2rem;border:none;border-radius:6px;
background:#0078d4;color:#fff;font-weight:bold;cursor:pointer;margin-right:.4rem}
button:hover{opacity:.85}
#result{white-space:pre-wrap;background:#fff;border:1px solid #ccc;
border-radius:8px;padding:1rem;margin-top:1rem;min-height:6rem}
</style>
</head>
<body>
<h1>🗂️ JSON の基礎デモ</h1>
<button id="toJson">オブジェクト → JSON</button>
<button id="toObj">JSON → オブジェクト</button>
<div id="result"></div>
<script>
// テスト用オブジェクト
const cafeData = {
menu: [
{name: "ホットコーヒー", price: 450},
{name: "アイスコーヒー", price: 450},
{name: "チーズケーキ", price: 500}
],
open: true,
note: null
};
// ダミー JSON 文字列(上記を stringify したもの)
const jsonText = JSON.stringify(cafeData);
const out = txt => document.getElementById("result").textContent = txt;
// ボタン: オブジェクト → JSON 文字列
document.getElementById("toJson").onclick = () => {
const pretty = JSON.stringify(cafeData, null, " ");
out("★ stringify の結果 ↓\n" + pretty);
};
// ボタン: JSON 文字列 → オブジェクト
document.getElementById("toObj").onclick = () => {
try {
const obj = JSON.parse(jsonText);
out("★ parse の結果 ↓\n" + obj);
} catch(e) {
out("パース失敗: " + e);
}
};
</script>
</body>
</html>
ブラウザの出力例

プログラム解説
cafeData
— JSON 化したい通常の JS オブジェクト。JSON.stringify
— 第3引数" "
を与えて2スペースインデント整形。JSON.parse
— 文字列を元の形へ復元。例外処理はtry … catch
で。- UI ボタン — 結果を
<div id="result">
に表示し、コンソールなしでも挙動を確認。
まとめ
JSON は 軽量・自己記述的 なフォーマットで、Web のデータ通信に欠かせません。
JSON.stringify
で送信文字列を生成JSON.parse
で受信文字列を安全にオブジェクト化
という2ステップを覚えれば、API 連携やローカル保存をスムーズに実装できます。まずは小さなオブジェクトを手作業で stringify / parse し、構造とルールを体感してみましょう。