フォーマッター

JSON整形

JSONを整形し、構文チェックを行います

インデントと改行の設定
💡 JSONの雑学・Tips
📜 JSONはJavaScriptの「サブセット」ではなかった

JSONはJavaScriptのオブジェクト記法をベースに2001年頃Douglas Crockfordが整理した仕様です。長らく「JSのサブセット」と言われてきましたが、実はJavaScriptでは有効な文字列(U+2028など)がJSONでは使えないケースがあり、厳密には別仕様です。2019年のES2019でようやく両者の差異が解消されました。

🚫 JSONにコメントは書けない(書けるようにしたJSONCもある)

仕様上、JSONにはコメントを書く構文がありません。設定ファイルにコメントを書きたいというニーズから、// コメントや末尾カンマを許容した「JSONC(JSON with Comments)」が生まれ、VS Codeの設定ファイル(settings.json)などで採用されています。

⚠️ 数値の扱いには落とし穴がある

JSONの数値型はIEEE 754の倍精度浮動小数点数で表現されるため、JavaScriptで安全に扱える整数の上限は2の53乗−1(約9000兆)です。それを超えるIDや金額をJSON数値で扱うと精度が失われます。TwitterのAPIがツイートIDを数値と文字列の両方で返していたのはこの問題への対策でした。

🗜️ 圧縮(minify)で通信量を削減できる

整形済みJSONの空白・改行・インデントは人間の可読性のためだけに存在し、データとして意味を持ちません。APIレスポンスやバンドルファイルをminifyすることで通信量を大幅に削減できます。改行・スペースだけで元サイズの20〜30%を占めるケースも珍しくありません。

🔑 キーの順序はJSONの仕様では保証されない

JSONオブジェクトのキーは「順序なし集合」と仕様で定義されており、パーサーがどの順序で処理してもよいとされています。実際には多くの処理系が記述順を維持しますが、それに依存した実装は危険です。順序が重要なデータには配列を使うのが正しい設計です。