JSON
JSON フォーマッター
JSON を圧縮・整形します。
JSON フォーマットについて
JSON(JavaScript Object Notation)は構造化データのためのテキスト形式です。圧縮(Minify)は転送量を減らすために空白を取り除き、整形(Beautify)は再インデントしてネストされたオブジェクトや配列を人間が読めるようにします。
JSON は見た目より厳格です。末尾のカンマ、シングルクォートの文字列、クォートなしのキー、コメントはいずれも JavaScript のオブジェクトリテラルでは有効ですが、JSON では構文エラーになります。ソースコードからオブジェクトリテラルをコピーしたときに「なぜパースできないのか」と戸惑う典型的な原因です。数値は JavaScript 自身の数値型と同じ IEEE-754 倍精度浮動小数点であるため、2^53(約 9 京)を超える整数はパース時に静かに精度を失うことがあります。64 ビットのデータベース ID や Discord 風のスノーフレーク ID のような値では実際に問題になります。
使われる場面
- 配信前に API レスポンスや設定ファイルを縮小する
- 圧縮されたレスポンスを整形してデバッグする
- ログやブラウザの開発者ツールから貼り付けた JSON を整理する
- デコードした JWT のペイロードと合わせて内容を確認する
よくある質問
圧縮してもデータが変わらないのはなぜですか?
圧縮はトークン間の意味のない空白だけを取り除きます。キー、値、構造はそのままなので、解析結果は同一になります。
無効な JSON を修正できますか?
いいえ。これは有効な JSON を検証して整形するものです。末尾のカンマなどの構文エラーがある場合は、推測ではなくエラーが表示されます。
キーの順序は保持されますか?
はい。オブジェクトのキーは入力に現れた順序のまま保持されます。
大きな ID の数値が少し変わってしまったのはなぜですか?
JSON の数値は IEEE-754 倍精度浮動小数点としてパースされ、これは 2^53(9,007,199,254,740,991)までしか整数を正確に表現できません。この範囲を超える 64 ビットの ID は、数値としてパースされた瞬間に精度を失います。よくある対策は、送信元のシステムがそうした ID を生の数値ではなく JSON 文字列として送ることです。このツールは与えられた数値の精度を整形し直すだけで、すでに上流で失われた桁を取り戻すことはできません。