JSON の Validation(構文検証)とエラー行の特定・修正ガイド

JSON Validate Formatter デバッグ Web開発

Web API のレスポンスや設定ファイル(package.json, tsconfig.json 等)で発生する JSON 構文エラー(Syntax Error)のバリデーション(検証)と修正の手順です。

1. オンライン JSON フォーマッター & バリデーター

入力した JSON の構文チェックを行い、エラーが発生している行番号と原因を判定します(処理はブラウザ内完結)。

🔧 この場でJSONを整形してエラーを特定する

 

2. JSON Validation エラーの 4 大原因と修正方法

RFC 8259 で定義されている標準 JSON 仕様は厳格であり、JavaScript オブジェクト(JS Object)では許容される書き方でもエラーになります。

① 末尾の余剰カンマ(Trailing Comma)

オブジェクトや配列の最後の要素の後ろにカンマがあると SyntaxError: Unexpected token が発生します。

// ❌ NG(末尾のカンマが違反)
{
  "id": 1,
  "name": "Taro",
}

// ✅ OK
{
  "id": 1,
  "name": "Taro"
}

② シングルクォート (') やクォートなしのキー

JSON のキー(Key)および文字列(String)は 必ずダブルクォート (") で囲む必要があります。

// ❌ NG (シングルクォートやキーのクォート省略)
{
  id: 1,
  'name': 'Taro'
}

// ✅ OK
{
  "id": 1,
  "name": "Taro"
}

③ コメントの混入 (// または /* */)

標準の JSON 仕様ではコメント記述が一切許可されていません(※ .vscode/settings.json 等の JSONC を除く)。

// ❌ NG (コメントは記述不可)
{
  // ユーザーID
  "id": 1
}

3. Node.js での安全な JSON バリデーション実装

コード上で JSON 文字列の妥当性をチェックする場合は JSON.parse()try-catch でラップして判定します。

function validateJson(jsonString) {
  try {
    const parsed = JSON.parse(jsonString);
    return { isValid: true, data: parsed, error: null };
  } catch (error) {
    // SyntaxError オブジェクトからメッセージを取得
    return { isValid: false, data: null, error: error.message };
  }
}

const result = validateJson('{"name": "Taro",}');
if (!result.isValid) {
  console.error("構文エラー:", result.error); // "Unexpected token } in JSON at position ..."
}