JSON テキストを最小化・エスケープ・整形する手順

このページは 1 つの入力欄の JSON テキストに対して、書式用の空白の削除、文字列に埋め込むための引用符とバックスラッシュのエスケープ、その解除、4 スペースのインデントでの再整形を行います。

4 つの操作はすべてブラウザ内で実行され、テキストがアップロードされることはありません。最小化と整形は先に入力を検証し、有効な JSON でなければテキストに手を加えず理由を表示します。エスケープと解除はテキスト変換なので、断片にも使えます。

  1. JSON を入力欄に貼り付けるか入力します。インデントは問いません。最小化と整形は実行前にドキュメントを検証します。
  2. 「JSON を最小化」は文字列の外側のスペース・タブ・改行を削除し、ステータス行に文字数を表示します。テキストの最小化であり、ZIP や gzip の圧縮ではありません。
  3. 「JSON をエスケープ」は引用符とバックスラッシュをエスケープ形式に変換し、別の文字列に埋め込めるようにします。「エスケープ解除」はそれを正確に元へ戻します。
  4. 「JSON を整形」は有効なドキュメントを 4 スペースのインデントで出力します。「コピー」は現在のテキストをクリップボードに、「クリア」は入力欄を空にします。
  5. 入力が無効な場合はステータス行にブラウザのメッセージが表示され、入力欄のテキストはそのまま残ります。

4 つの操作とその限界

最小化が削除するもの

最小化はテキストを走査し、文字列リテラルの外側にあるスペース・タブ・改行だけを削除します。たとえば「二つの 単語」の二重スペースは残り、その周囲のインデントは消えます。入力はまず厳密な JSON として解析される必要があり、失敗した場合はテキストを変更せずステータス行に理由を表示します。

結果は ZIP や gzip のファイルではありません。バイト単位の圧縮は行わず、削除できる空白がなくなる分だけ短くなるだけです。ステータス行に前後の正確な文字数を表示します。

エスケープと解除は一方向の 1 回走査

エスケープはすべてのバックスラッシュを二重に、すべての引用符をバックスラッシュ付きに変換します。これは JSON を JavaScript や JSON の文字列に埋め込むために必要な変換そのものです。解除は左から右へ 1 回だけ走査し、この 2 つのシーケンスだけを元に戻します。

ほかのエスケープ シーケンスは解釈しません。\n、\t、\uXXXX は解除してもそのまま残り、エスケープ側でも変更しません。テストしたすべてのシーケンスで往復できるため、エスケープした出力は元のテキストに戻せます。

整形・検証・限界

「JSON を整形」はドキュメントを解析し、4 スペースのインデントで出力し直します。ドキュメントを再シリアライズするため、数値リテラルは正規化され(1.0 は 1 になります)、\uXXXX エスケープは対応する文字になります。

パーサーは厳密な JSON です。コメント、シングルクォート、末尾のカンマは拒否されます。サーバー側のサイズ制限はなく、実質的な上限はブラウザのメモリです。「コピー」は入力欄の現在のテキストを渡します。

最近使ったツール: