JSON整形・圧縮ツール|構文エラーもチェック
JSONを入力し、処理を選んで「実行する」を押してください。
このツールでできること
標準JSONを読みやすい形に整形したり、構造外の空白や改行を除いて圧縮したり、構文が正しいかチェックしたりできます。整形・圧縮した結果はそのままコピーできます。
使い方
- JSON入力欄へ確認したいJSONを貼り付けます。
- 「JSON整形」「JSON圧縮」「構文チェック」から処理を選びます。
- 「実行する」を押します。
- 整形・圧縮した場合は、必要に応じて「結果をコピー」を押します。
入力例・出力例
{"name":"ToolRoll","items":[1,2]}を整形すると、次のようにオブジェクトと配列を改行し、階層を半角スペース2個でインデントします。
{
"name": "ToolRoll",
"items": [
1,
2
]
}
圧縮では同じ構造を{"name":"ToolRoll","items":[1,2]}の1行へ再生成します。
よくある利用場面
- APIレスポンスや設定JSONを読みやすく整形するとき
- JSONの構文エラーがあるか実行前に確認するとき
- 文字列値の空白を保ったまま構造外の空白を圧縮するとき
処理仕様
入力できるJSON
標準JSONとして入力全体を解析します。オブジェクトのキーと文字列は二重引用符で囲みます。JSON5やJSONCで使われるコメントなどの拡張構文や、末尾カンマは受け付けません。
オブジェクトや配列に加え、文字列、数値、真偽値、nullもJSON全体の値として扱います。空または空白だけの入力はエラーです。先頭のU+FEFFは1文字だけ除いて解析します。
整形・圧縮
入力をJSON.parse()で解析し、JSON.stringify()で再生成します。整形では半角スペース2個で階層をインデントします。圧縮では構造外の空白・タブ・改行を除き、文字列値の空白を保持します。
再生成により、数値やエスケープの書き方、空白、改行コードが変わることがあります。例えば{"z":-0,"e":1e3,"u":"\u0061"}を圧縮すると、{"z":0,"e":1000,"u":"a"}になります。整数のようなキーを含む場合は、JavaScriptの列挙順に従ってキーの順序が変わることがあります。
重複するキーは後の値が残ります。{"a":1,"a":2}を整形・圧縮すると{"a":2}になります。
数値の精度と変換時の制限
数値はJavaScriptのNumberとして扱います。すべての整数を連続して正確に区別できる安全整数範囲は、-9007199254740991から9007199254740991までです。例えば9007199254740993は、整形・圧縮後に9007199254740992になります。注文番号やIDなど、桁を変えられない値は"9007199254740993"のように文字列として入力してください。
1e400のようにJavaScriptで有限の数値として保持できない値は、構文チェックでは有効でも整形・圧縮ではエラーにします。再生成によってnullに変わることを防ぐためです。
ネストが深すぎるJSONも、構文が正しくても整形・圧縮できない場合があります。処理速度や扱える入力の大きさは、端末とブラウザの性能に依存します。
構文チェック
標準JSONとして解析できるかを状態欄に表示します。項目や値がAPI等の仕様に合うかを確認するJSON Schema検証は行わず、結果欄への出力も行いません。構文エラーの詳細はブラウザのJSON.parse()が返すため、表現や位置情報はブラウザによって異なります。
仕様の詳細は、RFC 8259、ECMAScriptのJSON.parse()、JSON.stringify()で確認できます。
入力データについて
処理はブラウザ内で行います。入力したJSONをコードとして実行せず、ToolRollのサーバーや外部サービスへ送信したり、CookieやWeb Storageへ保存したりしません。