このツールについて
圧縮した JSON は、cURL コマンド、CI の環境変数、CSV のセル、クエリパラメーターなど、ペイロードを 1 行にしたいときに便利です。このツールはまず入力を検証するので、壊れたペイロードを使ってしまうことはありません。圧縮前後のサイズも表示します。ブラウザ自身の JSON パーサーで解析し、空白なしで再シリアライズするため、出力は JSON.stringify の結果とまったく同じです。
使い方
- 整形された JSON を貼り付けるか、サンプルを読み込みます。
- バナーを確認します。不正な JSON は圧縮されず、エラー位置が表示されます。
- 1 行の出力をコピーするか、ファイルとしてダウンロードします。緑のバナーに圧縮前後のサイズが表示されます。
テスターが圧縮 JSON を必要とする場面
- cURL コマンドのリクエストボディ。1 行の
-d '{...}'なら貼り付けや共有が簡単です。 - サービスアカウントキーやフィーチャーフラグのマップなど、JSON を保持する CI のシークレットや環境変数。
- CSV やスプレッドシートの 1 セルに JSON ペイロードを入れるデータ駆動テスト。
- JSON を含むクエリパラメーター。先に圧縮してから URL エンコードします。
- 1 行に 1 つの JSON ドキュメントを前提とするログ行や NDJSON ファイル。
圧縮(Minify)はデータ圧縮ではない
HTTP では、レスポンスは通常 gzip や Brotli で圧縮され、空白は非常によく圧縮されます。そのため、レスポンスを Minify しても、ここに表示されるバイト数ほど通信量は減りません。Minify が最も効果を発揮するのは、環境変数、データベースのカラム、URL、リポジトリにコミットするフィクスチャなど、JSON が圧縮されずに保存・貼り付けされる場面です。
コードやコマンドラインで JSON を圧縮する
- JavaScript:
JSON.stringify(JSON.parse(text))。 - Python:
json.dumps(obj, separators=(",", ":"))。デフォルトの区切り文字ではカンマとコロンの後にスペースが入ります。 - jq:
jq -c . payload.jsonでコンパクトに出力します。 - Java の Jackson:
new ObjectMapper().writeValueAsString(obj)はデフォルトでコンパクトです。
JSON 圧縮ツール(Minifier) のよくある質問
圧縮すると値が変わることはありますか?
いいえ。削除されるのはトークン間の空白だけで、文字列値の中の空白はそのまま保持されます。ただし注意点として、2^53 − 1 を超える整数はこのツールを含む JavaScript ベースのパーサーで丸められるため、非常に大きな ID は文字列で保持してください。
コメントを含む JSON を圧縮できますか?
いいえ。コメントは正しい JSON ではないため、入力は拒否されます。先にコメントを削除してください。JSONC ファイル(VS Code の設定ファイルなど)の場合は、読み込むツール側が明示的にコメントに対応している必要があります。
出力をそのままシェルコマンドに貼り付けても安全ですか?
自動的に安全になるわけではありません。シングルクォートで囲んだシェル文字列の中では、データ内のシングルクォートをエスケープする必要があります。cURL コマンド生成ツールならクォート処理を自動で行います。