JSON整形ツール

JSONを読みやすく整形したり、文字列外の空白を削除してコンパクトにしたりできます。大きな整数や長い小数も元の表記を保ち、文字列のエスケープやキーの順序も保持します。クエリパラメータへの変換、テキストのエスケープと解除も利用できます。

ブラウザ内でローカルに実行

JSONを整形して結果をコピーする

オブジェクトや配列だけでなく、文字列、数値、真偽値、nullも整形できます。最上位の値をオブジェクトにする必要があるのは、クエリパラメータへ変換する場合です。

入力は貼り付け方式で、ファイルアップロードやリモートURLからの取得には対応しておらず、整形とテキスト変換はブラウザー内で実行され、大きな入力の処理はブラウザーのメモリに依存します。

  1. 入力欄にJSONを貼り付け、整形プレビューを確認します。
  2. 2スペースのインデントで整形するか、空白を削除して圧縮します。
  3. 出力を確認してコピーします。構文エラーがあれば、表示された行と列を確認します。

数値の保持と変換時のルール

数値の表記を変えずに整形

整形と圧縮では、9007199254740993、1.234567890123456789、1e400をそのまま保持します。-0、1.2300の末尾のゼロ、指数表記も変わりません。ただし、出力を別のプログラムで浮動小数点数として読み込むと、そこで精度が失われる場合があります。

クエリ変換は最上位のプロパティごとに1項目

文字列はエスケープを解釈したテキスト、nullは空の値になります。真偽値と数値は文字列になり、数値の表記は保持されます。入れ子のオブジェクトや配列はコンパクトなJSON文字列となり、角括弧を使ったパスには展開されません。

{"q":"a b&c","user":{"id":9007199254740993}} の結果は q=a+b%26c&user=%7B%22id%22%3A9007199254740993%7D です。フォーム形式でエンコード済みなので、再エンコードは不要です。空白は +、予約文字はパーセントエンコードされ、先頭の ? は付きません。

エスケープと解除は外側の引用符なし

エスケープは任意のテキストを受け付け、先頭と末尾の空白を保持します。AとBを別々の行に書いた入力は、文字列の内容だけを表す A\nB になります。解除するときも外側の二重引用符を付けずに入力します。タブや制御文字もエスケープされ、解除時には \q などの無効なシーケンスが拒否されます。

JSON整形と変換のよくある質問

構文チェックでJSON Schemaも検証できますか?

できません。構文のみを確認し、必須項目や期待する型は検証しません。コメント、末尾カンマ、二重引用符のないキー、NaN、Infinityは拒否されます。自動修復機能はありません。

同じキーが複数ある場合はどうなりますか?

整形と圧縮は {"a":1,"a":2} の両方を保持します。受け取るパーサーによって解釈が異なる可能性があり、クエリ変換では最上位のキーの重複をエラーにします。

Unicode変換は常に元に戻せますか?

非ASCIIのUTF-16コード単位を \uXXXX に変換し、基本多言語面外の文字にはサロゲートペアを使います。復元時は不正なトークンをそのまま残しますが、もともと文字として書かれた \u0041 は A になります。既存のエスケープとUnicodeが混在すると元に戻る保証はありません。これはテキスト変換であり、JSON検証ではありません。

最近使ったツール: