JSONが読み込めないときは?末尾カンマの修正・整形・大きなIDの確認方法

設定ファイルやAPIの応答をJSONとして読み込めず、どこを直せばよいか迷っていませんか。この記事では、ITtripが運営する「ぱっとネット」のJSON整形・検証を使い、末尾カンマの修正から、読みやすい整形結果の保存までを説明します。

まず見るのはJSONの書き方です。形を整えられた後に、IDや件数などの値を確認します。構文が正しくても、アプリが必要とする内容まで正しいとは限りません。

目次

末尾カンマで失敗する例を確認する

JSONでは、最後の要素の後にカンマを置けません。たとえば次の文字列は、閉じる波括弧の直前にカンマがあるため、読み込みに失敗します。ダミーデータなので、そのまま練習に使えます。

{"enabled":true,"ports":[80,443],}
  1. ぱっとネットの「JSON整形・検証」を開く。
  2. 「JSON」欄に上の文字列を貼り付ける。
  3. 「出力形式」を「2スペースで整形」にして「実行する」を押す。
  4. エラーが表示されたら、末尾の「,}」を探す。
末尾カンマのあるJSONを実行し、構文エラーが表示された画面
閉じる波括弧の直前のカンマが、この例の原因です。エラーの詳しい文面はブラウザーによって異なります。

配列でも同様に、[80,443,] は不正です。キー名や文字列はダブルクォートで囲みます。シングルクォートを使ったJavaScriptの記述を、そのままJSONに貼り付けないようにしましょう。これらの違いはMDNのJSON.parse()の説明でも確認できます。

カンマを直し、整形したJSONを保存する

末尾のカンマを削除します。ここでは、大きなIDを文字列で扱う例としてcustomerIdも加え、次の内容で実行します。表示が「有効なJSONです」になったら、まず出力に必要なキーと値が残っているか確認してください。

{"enabled":true,"ports":[80,443],"customerId":"9007199254740993"}

「2スペースで整形」を選ぶと、出力は次のように改行と字下げが加わり、配列や入れ子の範囲を追いやすくなります。

{
  "enabled": true,
  "ports": [
    80,
    443
  ],
  "customerId": "9007199254740993"
}
customerIdを文字列にしたJSONが有効と表示され、2スペースで整形された結果と保存ボタンがある画面
customerIdの桁は文字列で保持しています。出力だけをコピーするか、formatted.jsonとして保存できます。

JSON本文を設定ファイルへ移すときは「出力だけコピー」を使います。「結果全体をコピー」は見出しや注意書きも含むため、そのままJSONファイルへ貼り付ける用途には向きません。「formatted.json を保存」ならファイルとして手元に残せます。既存設定を置き換える前に、元ファイルを別名で保存しておきましょう。

出力形式使いどころ
2スペースで整形内容を読み、変更箇所を確認する
4スペースで整形利用先の字下げルールに合わせる
圧縮(1行)改行のないJSON文字列が必要な場面

大きなIDは数値のまま整形しない

このツールはJavaScriptの数値としてJSONを読み取ります。整数を正確に扱える範囲を超えると、構文エラーにならずに桁が丸められる場合があります。RFC 8259の数値の説明でも、受け手の範囲・精度に注意する必要があります。

計算しない会員IDや注文IDは、受け取り側の仕様が許すなら文字列にします。次の例ではcustomerIdをダブルクォートで囲んでいます。先頭ゼロを残したい番号も同じ考え方です。

{"customerId":"9007199254740993","orderCode":"00123"}

APIが数値型を要求する場合は、勝手に文字列へ変更せず、提供元の仕様を確認してください。元データと出力のIDが一致するか、保存前に比較することも必要です。大きな数値を一度丸めてしまうと、後から引用符を付けても元の値には戻せません。

「有効なJSON」で分かる範囲を確認する

確認内容このツールでの扱い
JSONの構文・整形確認する
JSON Schemaに沿う型・必須項目確認しない
同じオブジェクト内の重複キー重複をエラーとして検出しない
存在する会員ID・正しい金額など業務上の条件確認しない

たとえば同じキーを2回書いたJSONは、読み込み後に後の値だけが残ることがあります。RFC 8259はキー名を一意にするよう勧めています。重要な設定では、元のJSONに重複がないかも別途確認し、整形しただけで完全に正しいと判断しないでください。

入力の扱いと作業を終える前の確認

JSONの入力内容はブラウザー内で処理し、当サービスのサーバーへ送信しません。ただし、ページの配信や共通紹介枠の読み込みなどの通信は発生します。ネットワーク診断とは処理方法が異なります。入力はツール画面同士の移動では同じタブ内に保持されますが、再読み込み・タブ終了や、広告のあるガイド・紹介ページへの移動で消えるため、必要な結果はコピーまたは保存してください。

最後に、エラーが解消したこと、元データとID・値が一致すること、利用先が求める型と項目を満たすことを確認します。構文から順に調べると、書き方の問題と利用先の条件を切り分けやすくなります。

表のデータをJSONにしたい場合は、CSVをJSONに変換し、先頭ゼロやセル内改行を確認する手順も参考にしてください。JSONの整形と、表からのデータ変換は別の作業として確認できます。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次