PitaTools Guide
JSON構文エラーの見つけ方:括弧・カンマ・引用符を順番に確認する
JSONが解析できないときに確認する箇所と、JavaScriptオブジェクトとの違いを具体例で説明します。
JSONは見た目より規則が厳しい
JSONのオブジェクトは波括弧、配列は角括弧で囲み、キーと文字列はダブルクォートで記述します。コメント、シングルクォート、末尾カンマは標準JSONでは使えません。JavaScriptのオブジェクトをそのまま貼り付けるとエラーになる代表的な理由です。
エラーメッセージが示す位置は、原因そのものではなく解析を続けられなくなった位置の場合があります。表示位置の直前にある引用符、カンマ、開き括弧を確認します。
確認する順番
長いJSONを一度に目視するより、次の順番で確認すると原因を絞れます。
- 波括弧と角括弧の開閉数が合っているか
- キーと文字列がダブルクォートで閉じているか
- 項目間にカンマがあり、最後の項目には余分なカンマがないか
- 改行などの制御文字が文字列内でエスケープされているか
- NaN、Infinity、undefinedを値として使っていないか
整形できた後も値を確認する
JSON整形ツールで解析できれば構文としては妥当ですが、業務上必要なキーや値の型が正しいことまでは保証しません。数値が文字列になっていないか、nullを許容するか、配列の各要素が同じ形かを確認します。
APIや設定ファイルで型の条件がある場合はJSON Schemaを用意すると、構文の次に構造も検査できます。秘密情報を含むJSONは、外部の共有サービスへ貼らずローカルで扱ってください。