JSON 整形
整形・圧縮・キー整列・検証。サーバー0。

壊れた JSON のエラー箇所を見つけて整形する (2026)

JSON のパースエラーが何行目か、整形・キー整列・圧縮はどうするか。ブラウザ内で安全に処理する方法を整理します。

藍色の背景に『JSON 整形』の大きな文字と整形・キー整列・圧縮・エラー位置のカードが並ぶ開発者向けの表紙画像。

API レスポンスを貼り付けたら、赤い一行に Unexpected token。どこが悪いのか目で追ううちに、結局は括弧をひとつずつ数えている。JSON はルールが単純なのに、その単純さゆえに小さなミスひとつが全体のパースを止めます。まずは、どこが壊れているかを見つける方法から整理します。

壊れた JSON、まずはどこが問題か

JSON パーサーは最初のエラーで止まり、その位置を教えてくれます。メッセージはつい読み飛ばしがちですが、そこに行と列が入っています。

たとえば { "name": "PiPi", "role": "editor", } のように最後の値の後にカンマを残すと、パーサーは Expected double-quoted property name in JSON at position 40 (line 4 column 1) と答えます。PiPi Worlds の JSON フォーマッターはこの行・列をそのまま指し示すので、閉じ括弧のある4行目へ直行すればよいのです。犯人はその直前の末尾カンマです。

よく出るエラーは決まっています。

エラー症状
末尾カンマ最後の要素の後の余分なカンマ
クォート抜けキーや文字列をダブルクォートで囲んでいない
括弧の不一致{[ を閉じていない
コロン抜けキーと値の間の : がない

JSON はシングルクォート・コメント・末尾カンマを許可しません(RFC 8259)。JavaScript のオブジェクトリテラルと混同して起きるミスが多いです。

見やすく整形するか、一行に圧縮するか

有効な JSON なら、インデントを付けて構造を一目で確認できます。2スペース・4スペース・タブから、チームの規約に合うものを選べます。

逆に転送サイズを抑えたいときは、圧縮ですべての空白を取り除きます。{ "a": 1, "b": [1, 2, 3] }{"a":1,"b":[1,2,3]} の一行になります。同じデータを表示用と転送用で行き来する作業なので、出番は多いです。

キー整列: 2つの API レスポンスを行単位で比較する

あまり知られていませんが、デバッグで強力なのがキー整列です。オブジェクトのキーをアルファベット順に並べ替えます。

2台のサーバーが同じデータを返すのに、キーの順序だけが違って diff が真っ赤になった経験はありませんか。両方をキー整列でそろえると、順序の差は消えて、本当に異なる値だけが残ります。たとえば {"name":"PiPi","id":42,"active":true}activeidname の順に並び替えられ、別のレスポンスと行をそろえて比較できます。

大きな数値が静かに変わる罠

これは知らないと長くハマります。JSON の数値は JavaScript で IEEE-754 倍精度としてパースされます。

問題は安全な整数の範囲を超えるときです。{"id": 12345678901234567890} を整形すると {"id": 12345678901234567000} が出てきます。下の桁が静かに 000 に変わったのです。JavaScript が安全に扱える整数は 2^53、つまり 9007199254740991 までだからです。Discord や Twitter の ID のような大きな整数は、この範囲を簡単に超えます。正確な桁が必要なら、元の JSON でその値を文字列("12345678901234567890")にしておくのが安全です。ツールに一度通せば、自分のデータにこの罠があるかすぐ見えます。

その API レスポンス、どこに貼っていますか

最後に押さえる点です。デバッグのために貼り付ける JSON には、アクセストークンや内部 ID、個人情報が混ざっていることが少なくありません。入力をサーバーへ送るオンラインフォーマッターなら、その機微なレスポンスがまるごと第三者に渡ります。

PiPi Worlds の JSON フォーマッターは、パースがすべてブラウザ内で実行されます。入力はサーバーへ送られないため、トークンを含む設定ファイルや API レスポンスも安心して整えられます。JSON の中の base64 値が気になれば Base64 ツール、その値が JWT なら JWT デコーダーへそのまま続けて確認できます。

よくある質問

JSON のパースエラーが何行目か、どう分かりますか?
パーサーが最初のエラーの位置を行・列で示します。たとえば 'Expected double-quoted property name in JSON at position 40 (line 4 column 1)' のように出ます。多くはその直前に末尾カンマ(trailing comma)や閉じ括弧の不足があります。
いちばん多い JSON の構文エラーは?
末尾要素の後の trailing comma、キーや文字列をダブルクォートで囲んでいない、括弧の閉じ忘れ、キーと値の間のコロン抜けが代表的です。JSON はシングルクォート・コメント・末尾カンマを許可しません(RFC 8259)。
キー整列はいつ使いますか?
オブジェクトのキーをアルファベット順に並べ替えると、キーの順序だけが違う2つの API レスポンスを行単位で比較(diff)しやすくなります。同じデータなのに順序のせいで差分に見えていたものが、きれいに揃います。
整形したら大きな数値が変わりました。バグですか?
バグではなく、JavaScript の数値の扱いによるものです。JSON の数値は IEEE-754 倍精度でパースされ、2^53(9007199254740991)を超える整数は下の桁が 0 になります。Discord や Twitter の ID のように正確な桁が必要な大きな整数は、元の JSON で文字列のままにしてください。
入力した JSON はサーバーに送信されますか?
いいえ。PiPi Worlds の JSON フォーマッターはすべてのパースをブラウザ内の JSON エンジンでローカル実行し、入力はアップロード・記録・保存されません。トークンを含む設定ファイルや API レスポンスも安全です。

Sources

PiFl Labs コンテンツチームが公開された出典に基づいて作成し、公開前に社内で検証しています。

最終確認:

ツールに戻る →