JSONフォーマッター
JSONを即座に整形・圧縮・検証します。
ブラウザ内で動作します。入力した内容はどこにも送信されません。
- エラー箇所を正確に表示
- 折りたたみ可能なツリー表示
- アップロード不要
JSONの整形方法
- JSONを貼り付けるかアップロードします。
- 整形(Pretty print)か圧縮(Minify)、インデント幅を選びます。
- 結果をコピーまたはダウンロードします。
Pretty printとMinifyの比較
| Pretty print | Minify | |
|---|---|---|
| 空白 | インデントと改行を追加 | すべて削除 |
| ファイルサイズ | 大きくなるが読みやすい | データは同じで最小サイズに |
| 向いている場面 | 編集やデバッグ | 本番のAPIや保存用データ |
よくあるJSONエラーとその直し方
| エラー | 直し方 |
|---|---|
| }や]の前の末尾カンマ | リストの最後のカンマを削除 |
| 文字列をシングルクォートで囲んでいる | ダブルクォートのみに変更 |
| クォートで囲まれていないプロパティ名 | すべてのキーをダブルクォートで囲む |
| //や/*のコメント | 削除する。JSONにコメント構文はない |
| 閉じ括弧や閉じ中括弧の不足 | { }や[ ]の対応関係を数える |
| 1.や.5のような数値 | 1.0や0.5と書く。JSONは小数点の両側に数字が必要 |
| 文字列内の生の改行 | 引用符内のそのままの改行は不可のため\nとしてエスケープ |
RFC 8259によるJSONの構文規則
- 数値の先頭にゼロは付けられず(01は無効)、末尾だけの小数点も無効です(1.は無効)。
- すべてのキーはダブルクォートで囲まれた文字列である必要があります。JavaScriptのクォートなしキーや省略記法は有効なJSONではありません。
- クォートなしで使えるリテラルはtrue、false、nullのみで、すべて小文字です。
- 文字列にはダブルクォートしか使えません。シングルクォートやバッククォートはJavaScriptの機能であり、JSONには含まれません。
- 1つのオブジェクト内の重複キーは文法上は許容されますが、このツールを含むほとんどのパーサーは最後の値だけを保持するため、両方が読み込まれることに頼らないようにしましょう。
JSONフォーマッターのFAQ
問題なさそうな行でJSONのエラーが出るのはなぜですか?
パーサーは読み込みを諦めた位置を報告しますが、それは前の行のカンマ抜けなど、実際の間違いの1文字先であることがよくあります。表示された行の直前の行も確認してください。
「キーを並べ替え」は何をしますか?
出力前にすべてのオブジェクトのキーをアルファベット順に並べ替えます。2つのJSONファイルの差分確認や、特定のフィールドを探す際に役立ちます。
非常に大きなJSONファイルも整形できますか?
はい。ただし折りたたみ可能なツリー表示は300KB未満の入力にのみ構築されます。それより大きいファイルも整形・圧縮はできますが、ツリー表示はありません。
MinifyとPretty printの違いは何ですか?
Pretty printは読みやすいように改行とインデントを加えます。Minifyはそれらをすべて取り除き、本番環境向けにファイルをできるだけ小さくします。
JSONの標準であるRFC 8259は実際に何を定めていますか?
オブジェクトと配列、ダブルクォートで囲まれた文字列、先頭にゼロを付けない数値、true、false、nullというリテラルなど、JSONの正確な文法を定めています。コメントや末尾のカンマなど、この文法の範囲外のものは、一部のパーサーが黙って受け入れてしまうとしても無効なJSONです。
コメントを許容するJSON5やJSONCファイルも整形できますか?
いいえ。一部のエディタが使うJSONC設定ファイルでよく見られるコメントや末尾のカンマは有効なJSONではなく、ここではエラーとして報告されます。それらの緩やかな形式を扱う場合は、先に取り除いてください。
ツリー表示のすべてのノードを一度に展開できますか?
はい、「すべて展開」をクリックしてください。大きなドキュメントは動作を軽くするため最初は1〜2階層しか開きませんが、「すべて展開」で残りのノードもすべて開けます。
整形結果をファイルとしてダウンロードできますか?
はい。ダウンロードボタンで、整形済みまたは圧縮済みの現在の出力を.jsonファイルとして保存できます。ファイル名はアップロードしたファイル名、直接テキストを貼り付けた場合は「formatted.json」になります。