JSON圧縮ツール

整形されたJSONドキュメントを貼り付けると、トークン間のスペース、改行、末尾の空白、JSONCコメントといった不要なバイトがすべて削除された1行形式のデータが得られます。出力されるバイト数は同じデータの可能な限り最短のエンコードに匹敵し、<script>への埋め込み、URLパラメータ、バイト単位で課金されるペイロードにそのまま使える状態です。

JSONを圧縮する手順

  1. 1

    JSONを貼り付ける

    整形済み、またはすでに部分的に圧縮された状態でも構いません。入力は解析され、再シリアル化されます。

  2. 2

    圧縮する

    トークン間の空白はすべて削除され、コメントも削除されます。数値はそのまま保持されます。

  3. 3

    サイズの差を確認する

    処理前後のバイト数と削減率(%)。

  4. 4

    出力をコピーする

    1行のJSONで、コードファイルやAPIリクエストにそのまま貼り付けられます。

削除される内容

  • トークン間の空白:スペース、タブ、改行。
  • コメント(JSONC形式の//および/* */)は、厳格なJSON規格で許可されていないため削除されます。
  • ドキュメント先頭のBOMおよび先頭の空白。

削除されない項目

  • :すべての文字列、数値、ブール値、nullは正確に保持されます。
  • 数値の表記:すべての数値は入力したとおりに正確に保持されます。1.501.50のまま、1e-31e-3のままです。このツールは入力した精度をそのまま維持します。
  • キーの順序:オブジェクトは元の挿入順序を維持します。

なぜJSONを圧縮するのか

  • より小さいペイロード:整形された120KBの設定ファイルは70KBまで縮小でき、これはすべてのリクエストにおいて重要です。
  • インライン埋め込み:JSONを<script>タグやURLパラメータに挿入する場合、空白文字は帯域幅の無駄になります。
  • ハッシュの安定性:意味的に同一の2つのJSONドキュメントでも、空白が異なればハッシュ値は異なります。先に圧縮しておくと一貫したハッシュが得られます(ただし、真の正規化ではキーも並べ替えられます)。

バイト節約に関する参照

入力 整形済み(2スペース) 圧縮後 削減量
小規模な設定(50キー) 1.8 KB 1.1 KB 39%
API応答(ネストあり、5 KB) 6.2 KB 4.1 KB 34%
大規模データダンプ 1.2 MB 0.8 MB 33%

gzipを適用すると差は大幅に縮小します。なぜならgzipはすでに空白文字を効率的に圧縮しているからです。生バイトの用途(URLやインライン埋め込み)では圧縮を使い、通信経路上の処理にはgzipを活用してください。

ミニファイしない場合

  • バージョン管理システムに保存された設定ファイルでは、可読性がデータ量よりも優先されます。
  • 人が編集するファイル、圧縮されたJSONを手作業で編集して後悔しない人はほとんどいません。
  • デバッグ用の成果物:クラッシュログに記録された1行400KBのJSONは、読み取ることが不可能です。

よくある間違い

  • コメントに依存していたJSONの圧縮。 コメントは削除されるため、TODOマーカーがあった場合はパーサーの動作が変わる可能性があります。
  • 浮動小数点数の圧縮。一部のツールは0.1を入力とは異なる形で再シリアル化しますが、このツールは文字列表現を正確に保持します。
  • 最小化をgzip圧縮の代わりに使うこと。 テキストでは、gzipのほうが最小化よりも多くのバイトを節約します。どちらか一方で置き換えるのではなく、両方を組み合わせて使ってください。

よくある質問

整形済みの入力の場合、通常は30~40%小さくなります。この削減効果はほぼ完全に空白の削除によるもので、実際のデータ内容は変わりません。gzip処理後は、圧縮版と整形版の差は通常5%未満になります。これはgzipが空白を効率的に処理するためです。

このツールは数値の文字列形式を正確に保持します。1.501.50のまま、1e-31e-3のまま保持されます。一部の圧縮ツールは数値を正規化しますが、本ツールはデフォルトで保守的に動作するため、意図しない精度の低下は発生しません。

いいえ。圧縮処理は完全にブラウザ内で実行されます。貼り付けたJSONがお使いの端末から外部へ送られることはありません。トークンやプライベートな設定を含むAPI応答にも安全に使えます。

はい。入力ではコメントが許容され、出力時に削除されます(厳格なJSONはコメントを許可していません)。コメントを残しておきたい場合は、整形済みのJSONCソースを保持し、デプロイ時にのみ圧縮してください。

関連ツール

このツールは他の言語でも利用できます