JSON整形・圧縮

JSONを見やすく整形、または1行に圧縮します。

🐾 入力内容はブラウザ内で処理され、サーバーには送信されません

使い方

  1. 「JSON」欄に整形・圧縮したいJSONを貼り付けます。
  2. 貼り付けた時点で自動的に整形され、「結果」欄に表示されます。インデントの空白数は「幅」(2・4・1)で変えられます。
  3. 1行にまとめたいときは「圧縮(1行)」を押します。整形に戻すときは「整形(インデント)」を押します。
  4. 「結果」欄に変換後のJSONが表示されます。「コピー」を押すとクリップボードにコピーでき、ボタンに一瞬「✓ コピーしました」と表示されます。

最初は「整形」が選ばれた状態です。「圧縮」を押すとその操作が覚えられ、あとから「JSON」欄を書き換えると同じ操作が自動でやり直されます。整形中に「幅」を変えたときも、新しい幅で整形し直されます。

JSONの書き方に誤りがあると、ボタンの下に赤い文字でエラーの内容が表示され、「結果」欄は空になります。前の結果が残らないので、誤ったまま古い結果をコピーしてしまう心配はありません。

整形と圧縮の仕組み

このツールは、入力をいったんJSONとして読み取り(構文チェック)、そのデータを改めて書き出しています。整形では、オブジェクトや配列の中身を1要素ずつ改行し、階層が深くなるごとに指定した数の空白を足します。圧縮では、値に含まれない改行や空白をすべて取り除きます。

たとえば次のJSONを幅2で整形すると、右のようになります。

入力整形結果(幅2)
{"name":"ねこ","tags":[1,2,3]}
{
  "name": "ねこ",
  "tags": [
    1,
    2,
    3
  ]
}

書き出し直すため、元のJSONにあった空白の入れ方は保たれません。キーの並び順は基本的に入力のまま保たれますが、「"10"」「"2"」のように数字だけのキーは、ブラウザの仕様により小さい順で先頭に並び替えられます。

エラーになる主な書き方

これらはJavaScriptでは書けても、JSONの規格では認められていません。

こんなときに便利

よくある質問

大きな数値が変わってしまうのはなぜですか?

ブラウザのJavaScriptが誤差なく扱える整数は、約9007兆(9,007,199,254,740,991)までです。これより大きい数値は近い値に丸められ、たとえば 12345678901234567890 は 12345678901234567000 と出力されます。IDなど桁数の多い数値を扱う場合は、元のデータと見比べてください。

同じキーが2回出てくるとどうなりますか?

後に書かれた値だけが残り、前の値は結果から消えます。

「あ」のような表記が文字に変わるのはなぜですか?

読み取った時点で「あ」は「あ」という文字として扱われ、書き出すときはそのままの文字で出力されます。JSONとしての意味は変わりません。

貼り付けたJSONはサーバーに送信されますか?

送信されません。整形と圧縮はすべてお使いのブラウザの中で行われ、入力内容が保存されることもありません。