JSON フォーマッター

JSONを整形・検証。インデント整形や圧縮出力、エラー位置の明示まで。

Loading…

すべての処理はブラウザ内で実行されます — ファイルや入力はサーバへ送信されません。

使い方

左側に JSON ドキュメントを貼り付けると、右側にフォーマット結果が表示されます。Pretty モードはインデントを適用し、Minify モードは空白を除去してコンパクトに出力します。無効な JSON の場合は行・列番号付きでエラー位置が示されるので、大きな API レスポンスや構文エラーが埋もれた設定ファイルのデバッグに役立ちます。

インデント幅は 2 / 4 / 8 スペースから選べます。すべてブラウザ内で処理されるため、巨大な JSON ペイロードもマシン外には出ません。

コンパクトな JSON を整形

入力
{"a":1,"b":[2,3]}
出力
{
  "a": 1,
  "b": [
    2,
    3
  ]
}

デフォルトは 2 スペースインデント。チームのスタイルに合わせて 4 / 8 スペースにも切り替えられます。

転送用に JSON を圧縮

入力
{
  "user": "alice",
  "scopes": ["read", "write"]
}
出力
{"user":"alice","scopes":["read","write"]}

HTTP ボディ用のコンパクトなペイロードが必要なとき、または設定文字列にコピペしたいときに便利です。

カンマの抜けを検出

入力
{
  "name": "bob"
  "age": 30
}
出力
Expected , or } at line 3, column 3

エラーには行・列番号が付くので、該当位置に直接ジャンプできます。

よくある質問

このツールは JSON をサーバへ送信しますか?

いいえ。標準の JSON.parse と JSON.stringify API を使ってブラウザ内ですべて処理します。データはページ外に出ません。

コメントや末尾カンマ付きの JSON を整形できますか?

厳密な JSON ではコメントや末尾カンマは認められていません。JSON5 や JSONC(tsconfig.json、VS Code の settings.json など)はこのツールでは弾かれます。先にコメントを削除するか、JSON5 対応のフォーマッターを使ってください。

Minify モードで Unicode 文字がエスケープされずそのまま残るのはなぜですか?

JSON.stringify は制御文字と引用符のみをエスケープします。日本語や韓国語などの非 ASCII テキストは有効な JSON なので、可読性を保ったまま残ります。ASCII のみの出力が必要な場合は別途エンコードしてください。

サイズ制限はありますか?

厳密な上限はありませんが、非常に大きなドキュメント(10 MB 以上)はパース中にページがフリーズすることがあります。巨大ファイルには jq のようなストリーミングパーサーをおすすめします。

大きな数値は正確に保持されますか?

いいえ。数値は JavaScript の Number 型(IEEE 754 倍精度)としてパースされます。Number.MAX_SAFE_INTEGER(2^53 − 1、約 9.007 × 10^15)を超える整数は静かに精度を失い、19 桁の Twitter / Discord スノーフレーク ID は末尾の数桁が異なる値に丸められます。正確な値を保ちたい場合は、ソース JSON でその数を文字列として引用してから整形するか、BigInt 対応のパーサを使ってください。

重複したキーはどう処理されますか?

RFC 8259 は挙動を実装依存と定めており、JSON.parse は静かに最後の出現を残します。`{"a":1,"a":2}` は整形後に `{"a":2}` となり、最初の値は警告なく消えます。重複は通常、生成側コードのバグを示すので、整形結果を信用する前に生の入力で該当キーを検索してください。

関連する概念

JSON(JavaScript Object Notation)は RFC 8259 で定義された構造化データのテキスト形式です。フォーマッターが行う操作は二つだけ — パース(テキスト → メモリ上のツリー)とシリアライズ(ツリー → 任意の空白付きテキスト)。エラーが出るのはパース段階だけです。

よくある落とし穴: キーはダブルクォート文字列でなければならず、末尾カンマは許されません。プリミティブは文字列・数値・真偽値・null・配列・オブジェクトに限られ、関数や Date、undefined は直接書けないため、アプリケーション層で明示的に変換する必要があります。

JSON に似て見えるが解析挙動が異なる隣接フォーマットがいくつかあります。JSON5 はコメント・末尾カンマ・引用符なしキーを許容し、手編集する設定ファイル向けです。JSONC(tsconfig.json や VS Code の settings.json が採用)はコメントと末尾カンマを認めます。JSON Lines(NDJSON)は外側の配列を持たず、1 行に独立した JSON オブジェクトを 1 つずつ書きます。ログのストリーミングや追記専用ファイルに向いています。本ツールは厳密な RFC 8259 のみを実装しているため、これらの変種はいずれもパースエラーになります。先に拡張部分を取り除くか、対応するフォーマット専用ツールを通してください。

関連記事

関連ツール