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 ..."
}