← ブログに戻る

5つの一般的なJSON構文エラーとその修正方法

開発者が遭遇する最も一般的な5つのエラーに関する包括的ガイドでJSON構文をマスターしましょう。実践的な例でJSON検証の問題を特定、修正、予防する方法を学びます。

Big JSON Team12 分で読めますbeginner
B

Big JSON Team

Technical Writer

Expert in JSON data manipulation, API development, and web technologies. Passionate about creating tools that make developers' lives easier.

12 分読む

# 5つの一般的なJSON構文エラーとその修正方法

JSONは現代のWeb開発に欠かせないものです——APIレスポンスから設定ファイルまで。シンプルな構文にもかかわらず、開発者はアプリケーションを破壊する厄介なJSONエラーに絶えず遭遇しています。

このガイドでは、最も一般的な5つのJSON構文エラー、それらを即座に特定する方法、そして永久に修正する方法について説明します。

---

JSONエラーがよくある理由

JSONの厳密な構文要件は、たった1つの誤った文字がドキュメント全体を無効にする可能性があることを意味します。JavaScriptとは異なり、JSON:

  • ✅ 文字列には二重引用符が必要(単一引用符は無効)
  • 末尾のカンマを禁止
  • ✅ キーと値の正確な形式が必要
  • コメントを一切許可しない

開発者を最も悩ませるエラーに深く入りましょう。

---

エラー#1: 末尾のカンマ(サイレントキラー)

問題

末尾のカンマ——配列またはオブジェクトの最後のアイテムの後の余分なカンマ——はJavaScriptでは完全に有効ですが、JSONでは完全に禁止されています。

❌ 無効なJSON

{

"username": "alice123",

"email": "alice@example.com",

"active": true,

}

✅ 有効なJSON

{

"username": "alice123",

"email": "alice@example.com",

"active": true

}

エラーメッセージ

Unexpected token } in JSON at position 78

SyntaxError: Trailing comma in JSON

修正方法

手動修正:
  • }または]の前のカンマをスキャン
  • 末尾のカンマを削除
  • JSONチェッカーで検証
  • 予防のヒント: BigJSONのようなJSON整形ツールを使用して、末尾のカンマを自動的に検出して強調表示します。

    ---

    エラー#2: 二重引用符ではなく単一引用符

    問題

    JavaScriptは文字列に単一引用符と二重引用符の両方を許可しますが、JSONは二重引用符のみを受け入れます(")。

    ❌ 無効なJSON

    {
    

    'name': 'John Doe',

    'age': 30

    }

    ✅ 有効なJSON

    {
    

    "name": "John Doe",

    "age": 30

    }

    エラーメッセージ

    Unexpected token ' in JSON at position 2
    

    SyntaxError: Expected property name or '}' in JSON

    ---

    エラー#3: 引用符のないキー

    問題

    JavaScriptでは、オブジェクトキーが有効な識別子である場合、引用符なしで記述できます。JSONではすべてのキーが文字列でなければならず、二重引用符で囲む必要があります。

    ❌ 無効なJSON

    {
    

    name: "Alice",

    age: 28,

    active: true

    }

    ✅ 有効なJSON

    {
    

    "name": "Alice",

    "age": 28,

    "active": true

    }

    ---

    エラー#4: 無効なエスケープシーケンス

    問題

    JSONは限られたエスケープシーケンスをサポートしています。無効なシーケンスを使用したり、特殊文字のエスケープを忘れたりすると、解析エラーが発生します。

    ❌ 無効なJSON

    {
    

    "path": "C:\\Users\\Alice\\Documents",

    "message": "Line 1

    Line 2"

    }

    ✅ 有効なJSON

    {
    

    "path": "C:\\\\Users\\\\Alice\\\\Documents",

    "message": "Line 1\\nLine 2"

    }

    JSONで有効なエスケープシーケンス

    | 文字 | エスケープシーケンス | 説明 |

    |------|---------------------|------|

    | " | \\" | 二重引用符 |

    | \\ | \\\\\\ | バックスラッシュ |

    | / | \\/ | スラッシュ |

    | 改行 | \\n | 改行文字 |

    | タブ | \\t | 水平タブ |

    ---

    エラー#5: JSONにおけるコメント(JSON ≠ JavaScript!)

    問題

    開発者はドキュメント化のためにJSONファイルにコメントを追加することがよくありますが、JSONはコメントを一切サポートしていません

    ❌ 無効なJSON

    {
    

    // ユーザー設定

    "username": "admin",

    "role": "superuser",

    / これは一時的です /

    "debugMode": true

    }

    ✅ 有効なJSON

    {
    

    "username": "admin",

    "role": "superuser",

    "debugMode": true

    }

    回避策

    オプション1: コメントフィールドを使用
    {
    

    "_comment": "ユーザー設定",

    "username": "admin",

    "role": "superuser"

    }

    ---

    JSONエラーを防ぐためのツール

    1. オンラインバリデーター

    BigJSON Validator - 有用なエラーメッセージで即座に検証。

    2. IDE拡張機能

    VS Code:
    • 組み込みのJSON検証
    • インラインエラーメッセージには「Error Lens」をインストール

    3. コマンドラインツール

    # Node.js組み込みバリデーター
    

    node -e "JSON.parse(require('fs').readFileSync('file.json'))"

    # Pythonバリデーター

    python -m json.tool file.json

    ---

    クイックリファレンスチェックリスト

    JSONファイルを送信またはデプロイする前に、以下を確認してください:

    • [ ] 最後のアイテムの後に末尾のカンマがない
    • [ ] すべての文字列が二重引用符(")を使用
    • [ ] すべてのオブジェクトキーが引用符で囲まれている
    • [ ] 特殊文字が正しくエスケープされている
    • [ ] どこにもコメントがない
    • [ ] 括弧と中括弧が正しく入れ子になっている
    • [ ] 有効なデータ型(string, number, boolean, null, object, array)

    ---

    まとめ

    最も一般的な5つのJSON構文エラーは:

  • 末尾のカンマ - }]の前のカンマを削除
  • 単一引用符 - 常に二重引用符(")を使用
  • 引用符のないキー - すべてのオブジェクトキーを引用符で囲む
  • 無効なエスケープ - 適切なエスケープシーケンスを使用
  • コメント - すべてのコメントを削除
  • 覚えておいてください: JSONはJavaScriptではありません!その厳密な構文は柔軟性を許しません。

    次のステップ

  • JSONを検証: BigJSON Validatorを使用
  • 自動整形: BigJSON Formatterを使用
  • 詳細を学ぶ: 完全なJSONガイドをお読みください
  • ---

    関連リソース

    ---

    最終更新: 2026年2月15日
    Share:

    関連記事

    Read in English