APIのレスポンス確認、設定ファイルの編集、データ交換...。JSONは現代の開発に欠かせないフォーマットです。

しかし、「インデントがぐちゃぐちゃで読めない」「どこでエラーが出てるかわからない」という経験はありませんか?

この記事では、JSONを効率的に整形・検証するテクニックを紹介します。

JSONとは

JSON(JavaScript Object Notation)は、データを構造化して表現するテキスト形式です。

JSONの特徴

  • 軽量:XMLより簡潔で読みやすい
  • 言語非依存:ほぼすべてのプログラミング言語で扱える
  • 人間が読める:テキストベースで直感的
  • Web標準:APIのデータ形式として広く採用

主な用途

  • Web APIのリクエスト・レスポンス
  • 設定ファイル(package.json, tsconfig.jsonなど)
  • データの保存・交換
  • NoSQLデータベース

JSONの基本構文

データ型

説明
文字列 "hello" ダブルクォートで囲む
数値 123, 3.14 整数・小数
真偽値 true, false 小文字のみ
null null 値がないことを表す
配列 [1, 2, 3] 角括弧で囲む
オブジェクト {"key": "value"} 波括弧で囲む

正しいJSONの例

{
  "name": "田中太郎",
  "age": 30,
  "isActive": true,
  "email": null,
  "hobbies": ["読書", "映画", "旅行"],
  "address": {
    "city": "東京",
    "zip": "100-0001"
  }
}

よくあるエラー

JSONのパースエラーで多い原因をまとめました。

1. 末尾のカンマ(Trailing Comma)

// ❌ エラー
{
  "name": "太郎",
  "age": 30,  ← この末尾カンマはNG
}

// ✅ 正しい
{
  "name": "太郎",
  "age": 30
}

2. シングルクォートの使用

// ❌ エラー
{'name': '太郎'}

// ✅ 正しい(ダブルクォートのみ)
{"name": "太郎"}

3. コメントの記述

// ❌ エラー(JSONはコメント非対応)
{
  "name": "太郎" // これはコメント
}

// ✅ 代替案:JSON5やJSONCを使う(対応ツールのみ)

4. キーのクォート忘れ

// ❌ エラー
{name: "太郎"}

// ✅ 正しい
{"name": "太郎"}

5. 特殊文字のエスケープ忘れ

// ❌ エラー
{"text": "こんにちは
世界"}

// ✅ 正しい(改行は\nでエスケープ)
{"text": "こんにちは\n世界"}
⚠️ エスケープが必要な文字

"(ダブルクォート)、\(バックスラッシュ)、改行、タブなど

整形のコツ

1. インデントを統一

2スペースまたは4スペースが一般的です。タブは避けましょう。

2. 1行JSONを展開

APIレスポンスは1行で返されることが多いです。整形ツールで展開しましょう。

// 圧縮された状態
{"users":[{"id":1,"name":"太郎"},{"id":2,"name":"花子"}]}

// 整形後
{
  "users": [
    {
      "id": 1,
      "name": "太郎"
    },
    {
      "id": 2,
      "name": "花子"
    }
  ]
}

3. キーの順序を整理

  • アルファベット順にソート
  • または重要度順に配置
  • チーム内でルールを統一

バリデーション

構文チェック(Syntax Validation)

JSONが正しい形式かどうかをチェックします。

  • カンマの位置
  • 括弧の対応
  • クォートの使用

スキーマチェック(Schema Validation)

JSON Schemaを使って、データの構造や型をチェックします。

// スキーマ定義例
{
  "type": "object",
  "properties": {
    "name": { "type": "string" },
    "age": { "type": "integer", "minimum": 0 }
  },
  "required": ["name"]
}
💡 APIの開発時

JSON Schemaを定義しておくと、フロントエンド・バックエンド間のデータ形式を明確にできます。

便利なツール

オンラインツール

ツール 特徴
Handy Box JSON整形 日本語対応、ブラウザ完結、ツリー表示
JSONLint 詳細なエラーメッセージ
JSON Editor Online ツリービュー&コードビュー切替

エディタ拡張機能

  • VS Code:Prettier、JSON Tools
  • JetBrains IDE:組み込みのJSON整形
  • Vim:jq コマンドと連携

コマンドライン

# jq:JSONの整形・クエリ
cat data.json | jq '.'

# Python:ワンライナーで整形
cat data.json | python -m json.tool

# Node.js
cat data.json | npx json

ベストプラクティス

1. 一貫したフォーマット

  • プロジェクト内でインデントを統一
  • .prettierrc や .editorconfig で設定
  • コミット前に自動整形

2. 適切なデータ型を使う

// ❌ 文字列で数値を表現
{"age": "30", "price": "100.5"}

// ✅ 適切な型を使用
{"age": 30, "price": 100.5}

3. nullと未定義を使い分ける

// 値がないことを明示
{"email": null}

// キー自体を省略(値が存在しない)
{}

4. 日付のフォーマット

// ISO 8601形式を推奨
{"createdAt": "2026-01-22T10:30:00Z"}

// Unixタイムスタンプも可
{"createdAt": 1769075400}

5. 大きなJSONは分割を検討

  • ファイルサイズが大きすぎると処理が遅くなる
  • ページネーションやストリーミングを活用
📝 本番環境では圧縮

整形されたJSONは人間が読みやすいですが、本番のAPIレスポンスでは圧縮版(minified)を使うと転送量を削減できます。

JSONを今すぐ整形

Handy BoxのJSON整形ツールなら、ワンクリックで整形・バリデーション。ツリー表示でデータ構造を視覚的に確認できます。

JSON整形ツールを使う →
この記事をシェア