JSON整形・圧縮・検証
APIの応答やログに埋もれたJSONを読みやすくしたいとき、設定ファイルのどこが壊れているか知りたいときに。貼り付けた瞬間に構文を確認します。
🔒 入力内容はお使いのブラウザ内だけで処理され、サーバーには送信されません。
JSON を入力すると、ここに構文チェックの結果が出ます。
0入力サイズ(バイト)
0出力サイズ(バイト)
-最上位の型
0階層の深さ
使い方
- 上の欄に JSON を貼り付けます。入力中に構文チェックが自動で走り、エラーがあれば行・列と周辺の文字を表示します。
- インデント(スペース2・4、タブ)を選び、「整形」を押すと読みやすい形に、「1行に圧縮」を押すと空白を取り除いた最小の形になります。
- 「ツリー表示」を押すと、折りたたみできる階層表示になります。深い構造の全体像を把握するときに便利です。
- 結果は「結果をコピー」でクリップボードへ、「.json をダウンロード」でファイルに保存できます。
変換の決まり
| 項目 | 扱い |
|---|---|
| 構文チェック | 自前の構文解析で、最初にエラーになった位置(行・列)と、その行の内容を表示します |
| 緩い入力の自動修正 | オンのとき、末尾のカンマ、シングルクォートの文字列、クォートなしのキー、// と /* */ のコメント、NaN・Infinity を受け付けます。出力は正しい JSON になります(NaN と Infinity は null になります) |
| キーをソート | すべての階層で、キーを文字コード順に並べ替えます |
| 非ASCII文字を \uXXXX にする | 日本語や絵文字を あ のような表記に置き換えます。ASCII しか通らない環境へ渡すときに使います |
| 数値 | JavaScript の数値として扱うため、2^53 を超える整数や桁数の多い小数は丸められます |
| 重複するキー | 後に書かれた値が残ります |
| ツリー表示 | 要素数 20,000 個までを表示します。それ以上は整形結果をご覧ください |
こんな時に
- APIの応答が1行で返ってきて読めないとき。貼り付けて「整形」を押すだけで階層が見えます。
- 設定ファイル(
package.json、tsconfig.jsonなど)を編集して動かなくなったとき。エラーの行と列が分かります。 - 2つのJSONの差分を取りたいとき。両方を「キーをソート」で整形してから比較すると、順番の違いに惑わされません。
- ログに
\"で埋め込まれたJSON文字列を取り出したいとき。「エスケープ解除」で元に戻せます。
注意
入力内容はブラウザの中だけで処理され、サーバーには送られません。ただし、認証トークンや個人情報を含むJSONを扱うときは、作業後に「クリア」を押すことをおすすめします。
よくある質問
「予期しない文字」のエラーが出ますが、どこが悪いのか分かりません
エラー欄に行番号と列番号、その行の内容と「^」の位置を表示しています。よくある原因は、最後の要素の後ろに付いた余分なカンマ、'(シングルクォート)で囲んだ文字列、クォートで囲んでいないキー、コメントです。これらは「緩い入力を自動修正」をオンにすると読み込めます。
整形したら大きな数値が変わってしまいました
JavaScriptの数値は 2^53(約9007兆)を超える整数を正確に表せないため、それより大きな整数や桁数の多い小数は丸められます。IDなどの大きな数値を扱うJSONは、数値を文字列として扱うのが安全です。
キーの順番が変わるのはなぜですか?
「キーをソート」がオンの場合だけ、すべての階層でキーをアルファベット順(文字コード順)に並べ替えます。オフなら入力の順番を保ちます。JSONの仕様上、キーの順番に意味はありませんが、差分を取るときはソートしておくと比較しやすくなります。
「エスケープ解除」は何をするボタンですか?
ログやAPIの応答に {\"a\":1} のように \" や \n で埋め込まれたJSON文字列を、元のJSONに戻します。入力全体が1つのJSON文字列("..." で囲まれている)でも、囲みのない中身だけでも解除できます。