テキスト
JSON フォーマッター
JSONを整形・圧縮・バリデーションします。インデントを選択して読みやすく整形、または1行に圧縮できます。構文エラーもその場で確認できます。
JSON 入力
整形結果
有効な JSON
無効な JSON
{{ result.lines }} 行 / {{ result.bytes.toLocaleString() }} バイト
{{ result.error }}
Tips
- JSON(JavaScript Object Notation)のキーは必ずダブルクォートで囲む必要があります。シングルクォートは無効です。
- 末尾のカンマ(
{"a":1,})は JSON 仕様では無効です。JavaScript の配列・オブジェクトとは異なる点に注意してください。 - 数値は
1.5e3(指数表記)も有効な JSON です。ただしNaN・Infinityは無効です。 - 文字列中のダブルクォートは
\"にエスケープが必要です。改行は\n、タブは\tを使います。 - 圧縮(Minify)した JSON はファイルサイズを小さくできますが、可読性がゼロになります。API レスポンスやデータ転送には圧縮版、設定ファイルには整形版が適しています。
よくある質問
JSON はデータ交換フォーマットの仕様であり、JavaScript のオブジェクトリテラルのサブセットです。主な違いは①キーは必ずダブルクォートが必要、②末尾カンマ不可、③
undefined・関数・NaN・Infinity は使えない、の3点です。書けません。JSON の仕様にコメント構文は存在しません。コメントを書きたい場合は、JSON5・JSONC(VS Code の設定ファイル形式)・YAML などの代替フォーマットの使用を検討してください。
RFC 8259 では JSON は UTF-8 エンコーディングを使用することと定めています。UTF-16・UTF-32 は技術的には動作する実装もありますが、相互運用性の観点から UTF-8 が推奨されます。
JSON の仕様上は区別がなく、すべて「number」型として定義されています。ただしほとんどの言語では整数・浮動小数点数に変換されます。非常に大きな整数(JavaScript の
Number.MAX_SAFE_INTEGER を超える値)は精度が失われる可能性があります。余談ですが ― JSON が XML に勝った理由
2000年代初頭、Web API のデータ形式は XML が主流 でした。しかし 2001 年に Douglas Crockford が JSON を提唱し、2010 年代以降は JSON が事実上の標準となっています。理由は単純で、JSON の方が軽く、JavaScript で扱いやすく、人が読みやすいからです。
同じデータを XML と JSON で表すと、JSON はバイト数が約 30〜50% 少なくなるケースが多いです。モバイル通信が細かった時代には、この差がアプリの応答速度に直結していました。
RFC 8259 では JSON のキーの重複について「SHOULD NOT(すべきでない)」と述べるにとどまり、明確な禁止ではありません。そのため {"a":1,"a":2} は「構文上は有効だが動作は未定義」という扱いです。実際にはほとんどのパーサーが後勝ちで処理しますが、同一キーが重複している場合は意図しないバグの原因になります。