このページは 1 つの入力欄の JSON テキストに対して、書式用の空白の削除、文字列に埋め込むための引用符とバックスラッシュのエスケープ、その解除、4 スペースのインデントでの再整形を行います。
ブラウザ内でローカルに実行このページは 1 つの入力欄の JSON テキストに対して、書式用の空白の削除、文字列に埋め込むための引用符とバックスラッシュのエスケープ、その解除、4 スペースのインデントでの再整形を行います。
4 つの操作はすべてブラウザ内で実行され、テキストがアップロードされることはありません。最小化と整形は先に入力を検証し、有効な JSON でなければテキストに手を加えず理由を表示します。エスケープと解除はテキスト変換なので、断片にも使えます。
最小化はテキストを走査し、文字列リテラルの外側にあるスペース・タブ・改行だけを削除します。たとえば「二つの 単語」の二重スペースは残り、その周囲のインデントは消えます。入力はまず厳密な JSON として解析される必要があり、失敗した場合はテキストを変更せずステータス行に理由を表示します。
結果は ZIP や gzip のファイルではありません。バイト単位の圧縮は行わず、削除できる空白がなくなる分だけ短くなるだけです。ステータス行に前後の正確な文字数を表示します。
エスケープはすべてのバックスラッシュを二重に、すべての引用符をバックスラッシュ付きに変換します。これは JSON を JavaScript や JSON の文字列に埋め込むために必要な変換そのものです。解除は左から右へ 1 回だけ走査し、この 2 つのシーケンスだけを元に戻します。
ほかのエスケープ シーケンスは解釈しません。\n、\t、\uXXXX は解除してもそのまま残り、エスケープ側でも変更しません。テストしたすべてのシーケンスで往復できるため、エスケープした出力は元のテキストに戻せます。
「JSON を整形」はドキュメントを解析し、4 スペースのインデントで出力し直します。ドキュメントを再シリアライズするため、数値リテラルは正規化され(1.0 は 1 になります)、\uXXXX エスケープは対応する文字になります。
パーサーは厳密な JSON です。コメント、シングルクォート、末尾のカンマは拒否されます。サーバー側のサイズ制限はなく、実質的な上限はブラウザのメモリです。「コピー」は入力欄の現在のテキストを渡します。