JSONを整形する方法
- 枠にJSONを貼り付けるか、.jsonファイルをドロップします。
- インデント(2・4・タブ)を選び、必要ならキーを名前順に並べるをオンにします。
- 整形するか1行に圧縮を押します。問題があれば行と列の位置を表示します。
しくみ
JSONの標準規格(RFC 8259)に沿った独自の厳密なパーサーで読み込み、問題を分かりやすい言葉で伝えます。末尾のカンマ、シングルクォート、コメント、抜けたコロン、閉じていない文字列などです。カーソルが正確な位置に移動するので、文字数を数える必要はありません。
クォートのないキーやundefinedのようなJavaScriptオブジェクト風の書き方も見分け、ただ失敗するのではなく何を直せばよいかを示します。
編集部で実測しました
キーが48,002個ある602KBのJSONファイルを整形したところ、検証と統計を含めて4コアのテスト用PCのChromeで105ミリ秒でした。一般的なAPIレスポンスや設定ファイルなら一瞬です。
こんなときに
1行にまとまったAPIレスポンスを読みたいとき。デプロイ前にpackage.jsonやtsconfigなどの設定ファイルをチェックしたいとき。テストデータを圧縮して小さくしたいとき。2つのJSONを行ごとに比べるためにキーを並べ替えたいときに。
2つのバージョンを比べるなら、ここで両方を整形してからテキスト比較に貼り付けてください。文字数やバイト数は文字数カウントで数えられます。
制限
- コメントと末尾のカンマ(JSON5・JSONCの書き方)は、標準のJSONでは使えないためエラーとして表示します。
- 約9000兆(2^53)を超える数値は、JavaScriptと同じく整形時に精度が落ちることがあります。
- 数十MBの大きなファイルも扱えますが、スマホでは動作が重くなることがあります。
よくある質問
JSONはどこかに送信されますか?
いいえ。読み込みも整形もブラウザ内で行うので、JSONに含まれるトークンやキー、個人情報は端末の外に出ません。
キーを名前順に並べるとは?
すべてのオブジェクトのキーをアルファベット順に並べます。データは変わらず順番だけが変わるので、ファイルの比較が楽になります。
2スペース、4スペース、タブのどれがいい?
Web系のプロジェクトでは2スペース、PythonやJavaでは4スペースが多く使われます。プロジェクトで使っている形式に合わせましょう。
JavaScriptでは通るのに、なぜJSONエラーに?
JavaScriptのオブジェクトではシングルクォート、クォートなしのキー、コメント、末尾のカンマが使えますが、JSONでは使えません。エラーメッセージでどれに当たるかが分かります。