JSON 整形・圧縮 — 検証付きフォーマッター
JSONを貼り付けて2/4/8スペースで整形するか、1行に圧縮できます。不正なJSONはパーサーのエラーメッセージで原因箇所が分かります。
{
"hello": "world",
"items": [
1,
2,
3
]
}仕組み
本ツールの役割
JSONは厳密なフォーマットで、引用符・カンマ・括弧の位置が1つでも違うとブラウザやAPIが「Unexpected token」のような分かりにくいエラーを返します。本ツールはブラウザのネイティブJSONパーサーで入力を解析し、整形(インデント付き)または圧縮(空白除去)して再シリアライズします。
パースに失敗した場合は、エラー位置が含まれるパーサーの生メッセージを表示します。これにより、欠けたカンマ・エスケープされていない引用符・末尾カンマなどを素早く特定できます。
整形と圧縮の使い分け
整形(pretty print): JSONを人が読むための標準形式。JavaScript系プロジェクトでは2スペース、Python・Java系では4スペースが慣例です。プロジェクトの慣例に合わせてください。
圧縮(minify): 1行に空白なしで畳みます。URL・環境変数・ストレージ容量が問題になる場面で有用です。一般的な整形済み設定ファイルは圧縮で20〜40%サイズ削減できます。
よくあるJSONの落とし穴
末尾カンマ。JavaScriptでは許容されますがJSONでは無効です。{a:1, b:2,} はエディタでは通っても、JSON.parseで失敗します。
シングルクォート。JSONはキー・値のどちらもダブルクォート必須です。{'a': 1} は無効、{"a": 1} が正しい。
コメント。JSONにはコメントがありません。// や /* */ を含めるとパース失敗します。VS CodeのJSONCはコメント対応ですが標準JSONではありません。
数値。JSONはNaN・Infinityをサポートしません。nullにするか文字列にラップするかを下流コンシューマーに合わせて決めてください。
よくある質問
›JSONC(コメント付きJSON)に対応していますか?
未対応です。先にコメントを削除するか、JSONC対応ツールを使用してください。
›サイズ制限は?
現代のブラウザはMBクラスのJSONも処理できますが、約1 MBを超えると入力欄が遅くなる場合があります。巨大ファイルはデスクトップツールを推奨します。
›JSONが無効と出る原因は?
末尾カンマ・シングルクォート・文字列内の未エスケープ引用符が最多原因です。パーサーのエラーメッセージにある列位置を確認してください。
›キーをアルファベット順にソートできますか?
現バージョンでは未対応です。jq --sort-keysなどソート対応ツールへ通すのが最速です。今後追加検討中。
›深くネストされたJSONも扱えますか?
可能です。ブラウザのJSONパーサーは実用上ほぼ無制限の深さに対応します。
›圧縮で1MBが1バイトにならないのは?
圧縮は空白を除去するだけで実データは残ります。実サイズ削減にはgzip圧縮やMessagePackなどのバイナリ形式を検討してください。
›入力データはサーバーに送信されますか?
いいえ。すべてブラウザ内で処理されます。
›JSON Schemaバリデーションは?
本ツールは構文のみ検証します。スキーマ検証はJSON Schemaバリデーターをスキーマファイルと組み合わせてご利用ください。
関連ツール
最終更新: