JSON 解析エラー「Expected Property Name」を修正

通常このエラーは、パーサが有効な JSON ではないオブジェクトキー(引用符なしキー、コメント、末尾カンマ、または厳密な JSON に混入した JavaScript 構文)に到達したことを意味します。

このエラーの意味

JSON のオブジェクトメンバは、必ずダブルクォート付きのプロパティ名から始まる必要があります。パーサが expected property name もしくは expected property name or '}' と言うときは、たいてい開きカッコや , の直後にいて "name" のようなキーを待っています。代わりに name、// コメント、/* コメント */、末尾カンマの後の閉じカッコを見つけたら止まります —— これらは JavaScript のパターンで、厳格な JSON ではありません。

最もよくある原因

デバッグの最短手順は、報告された行と列の文字を見て、1 トークン前を確認することです。多くの場合、次のうち 1 つの小さなミスから来ます。

  • 無引用のオブジェクトキー(例:{ name: "Ada" })
  • シングルクォートのキーや文字列(例:{ 'name': 'Ada' })
  • JavaScript や JSONC ファイルからコピーされたコメント
  • } や ] の前の末尾カンマ

エラーの例

{ name: 'Ada', active: true, // copied from a JS object }

修正後の JSON

{ "name": "Ada", "active": true }

修復チェックリスト

すべてのキーをダブルクォートで囲み、シングルクォート文字列をダブルクォート文字列に変換し、コメントを削除し、末尾カンマを除去し、真偽値と null を小文字にします。修復後は、設定ファイルに保存したり API に送信したり DB マイグレーションに貼り付ける前に、厳格な検証を 1 度実行してください。

自動修復が安全な場面

意図が明確で、純粋に構文の整理であれば自動修復は安全です。これをビジネスルールの検証と混同しないでください。キー名・数値・日付・列挙値に曖昧さが残るなら、構文だけ直してから、ソースシステムや API スキーマと突き合わせて確認してください。