JSON整形・圧縮・検証(エラー位置表示)
API のレスポンスや設定ファイルの JSON を貼り付けると、インデント 2・4・タブで整形、1 行に圧縮、キーの昇順並べ替えができます。構文エラーは行・列と該当行の抜粋で示し、コメントや末尾カンマを取り除いて解釈する機能もあります。
- 無料
- 登録不要
- 入力内容はブラウザ内で処理(サーバー送信なし)
入力と同時に解析します。内容は保存も送信もされず、ページを離れると消えます。
整形: 選んだインデントで読みやすく書き直します
オフのときは、入力の \uXXXX も実際の文字に戻して出力します
// と /* */ のコメント、} や ] の直前のカンマを取り除いて解釈します
使い方
- JSON を入力欄に貼り付けます。入力と同時に解析され、有効なら整形結果が、無効なら「行・列 付近: 原因」と該当行の抜粋が表示されます。
- 「整形」「圧縮」「キー並べ替え」「検証のみ」で処理を切り替えます。整形のインデントはスペース 2・スペース 4・タブから選べます。
- コメント(// や /* */)や末尾のカンマを含む JSONC 風の入力は、「コメントと末尾カンマを許容」をオンにすると取り除いて解釈します。修復した場合はその旨が表示されます。
- 結果は「出力をコピー」または「.json をダウンロード」で取り出せます。入力欄の内容は保存されず、ページを離れると消えます(API レスポンスにはトークンや個人情報が含まれやすいため、意図的に保存しません)。
このツールについて
整形は、ブラウザの JSON.parse で読み取った値を JSON.stringify で書き直す方式です。そのため数値は JavaScript の倍精度浮動小数点数として扱われ、2 の 53 乗を超える整数や末尾の 0 を含む小数(1.50 など)は元の表記が保たれないことがあります。同じキーが重複している場合は後の値が採用されます。オブジェクトのキーの順序は入力どおりに保たれ、「キー並べ替え」を選んだときだけ、すべての階層のキーを文字コード順(昇順)に並べ替えます。配列の要素の順序は変えません。なお、JavaScript の仕様により、"1" や "20" のような整数の形をしたキーは並べ替えの有無にかかわらず数値順で先頭に出力されます。
構文エラーの位置は、ブラウザの JSON.parse が返すメッセージに含まれる位置情報(Chrome・Edge などの「at position N」「line L column C」、Firefox の「line L column C」)から取り出します。Safari のように位置を含まない場合は、ツール内の簡易スキャナが、JSON の文法(RFC 8259)から最初に外れた文字の位置を推定します。原因の説明文はこのスキャナが日本語で生成しているため、ブラウザの原文(併せて表示)とは表現が異なります。行・列は 1 から数え、列は UTF-16 の文字単位です。
「コメントと末尾カンマを許容」は、文字列の外にある // 行コメントと /* */ ブロックコメントを空白に置き換え、} や ] の直前のカンマを取り除いてから解釈します。シングルクォートやクォートなしのキー、NaN などは修復しません。修復して解釈した場合はその旨を表示し、出力は厳密な JSON になります。
Unicode エスケープ(\uXXXX)は読み取り時に実際の文字へ戻され、出力では文字のまま書き出します。「非 ASCII 文字を \uXXXX でエスケープ」をオンにすると、日本語や絵文字を \uXXXX 形式で書き出します(絵文字などはサロゲートペアの 2 つに分かれます)。サイズは UTF-8 でのバイト数、深さはオブジェクト・配列の入れ子の最大段数(最上位が 1)、キー数と配列の要素数はすべての階層の合計です。処理はすべてブラウザ内で行い、入力内容をサーバーに送信することはありません。
よくある質問
- Q. 数値の桁や表記が変わってしまいました。
- JavaScript の数値は倍精度浮動小数点数のため、16 桁を超える整数や一部の小数は正確に表現できず丸められます。また 1.50 は 1.5、1e3 は 1000 のように正規化されます。ID などの大きな整数は、元データ側で文字列として扱うのが安全です。
- Q. キーの並べ替えで配列の中身も並び替わりますか?
- いいえ。配列の要素の順序は意味を持つため変更しません。配列の中にあるオブジェクトのキーだけを並べ替えます。
- Q. エラーの行・列が、実際に直すべき場所と少しずれます。
- 位置は「そこまでは正しく読めた」地点を示すため、原因となった箇所(たとえば閉じ括弧の付け忘れ)より後ろを指すことがあります。直前の行や括弧の対応を確認してください。「入力欄でエラー位置を選択」を押すと、入力欄のその位置にカーソルが移動します。
- Q. 大きな JSON も扱えますか?
- ブラウザのメモリに収まる範囲で動きます。処理はページと同じスレッドで行うため、数十 MB のような大きな入力では画面が一時的に止まることがあります。その場合は分割して試してください。
- Q. 入力した JSON はどこかに送信されますか?
- いいえ。解析・整形はすべてブラウザ内で行い、入力欄の内容はサーバーにも localStorage にも保存されません。ページを離れると消えます。
最終更新: 2026-08-21 / このツールは「AIで小さな事業をつくる実験」の中で、作者自身の作業のために作ったものです。不具合・要望はこのサイトについての窓口からお知らせください。