テキスト 🔒 ブラウザ内で動作 — データは送信されません

JSON圧縮(Minify)

JSONから空白を取り除き、有効でコンパクトな1行にします。貼り付けた時点でミニファイされます。

入力JSON

JSONをオンラインでミニファイ

整形されたJSONは人が読むためのもので、インデントや改行はパーサーにとって何の意味もありません。ミニファイでそれらを取り除けば、同じデータを少ないバイト数で1行に収められます。環境変数、コマンドライン引数、ログの行、リクエストボディで重宝します。

このページは、貼り付けた時点でミニファイするよう設定したJSON整形ツールを開きます。先にドキュメントを解析するので、コピーするのは常に有効なJSONです。

図:同じJSONオブジェクトを1行で書いたもの(35バイト)と、スペース2つでインデントして整形したもの(61バイト)。圧縮:35バイト{"id":7,"tags":["a","b"],"ok":true}整形圧縮整形:61バイト{"id": 7,"tags": ["a","b"],"ok": true}
整形で増えるのは改行とインデントの空白だけです。データ自体はどちらも同じなので、通信用に圧縮して空白を取り除いてもJSONの意味は変わりません。

具体的に何が取り除かれるか

  • インデントのスペースとタブ。
  • キーや配列の要素の間にある改行。
  • :と,の後ろのスペース。
  • 引用符で囲まれた文字列の中身は何も削除しません。"New York"のスペースは残ります。

ミニファイが役立つ場面

場面1行にすると便利な理由
環境変数やシークレット管理サービス多くは1行の値を前提としている
curlやCLIの引数シェルで改行をエスケープせずに済む
構造化ログ(JSON Lines)1行に1レコードという形式そのもの
データベースの列にJSONを保存する1行あたりのバイト数が減る
Webサイトで配信する静的なJSONファイル圧縮前の時点でもダウンロードが小さくなる

ミニファイとgzipの違い

HTTPで配信するJSONでは、仕事の大半を圧縮が担います。gzipやBrotliは、繰り返し現れる空白を縮めるのが得意です。ミニファイにもわずかな効果があり、コストもかかりませんが、テキストが40%小さくなってもレスポンスが40%速くなるとは期待しないでください。ミニファイがはっきり有利なのは、ローカルストレージ、データベースのフィールド、メッセージキューなど、圧縮がかからない場所です。

コードでミニファイする

  • JavaScript:JSON.stringify(JSON.parse(text))
  • Python:json.dumps(obj, separators=(',', ':'))
  • jq:jq -c . file.json
  • PHP:json_encode(json_decode($text))

先に構文エラーを探したいときは、JSON構文チェックが何がどこで間違っているかを説明します。

関連ガイド