JSON整形ツール

サンプルで試す
インデント:
キー数-
深さ-
サイズ-

JSONとJSON整形の概要・基礎知識

JSON(JavaScript Object Notation)は、キーと値のペアや配列を組み合わせてデータ構造を表現する軽量なフォーマットで、RFC 8259として標準化されています。Webアプリケーションのバックエンドとフロントエンドの間でやり取りされる定番形式であり、外部APIのレスポンス、設定ファイル、ログ出力にも広く採用されています。整形(フォーマット)されていないJSONは1行に圧縮されていることが多く、構造を目視で追うのが困難なため、改行とインデントを付けて読める形にする処理が「JSON整形」です。本ツールはブラウザの JSON.parseJSON.stringify を使い、入力データを外部送信せず端末側で整形します。

整形の仕組みとサポート対象

項目内容
パース処理JSON.parse による構文チェックと木構造への変換
出力JSON.stringify(value, null, indent) でインデント付き文字列に再変換
インデント2スペース/4スペース/タブの3種類から選択可能
サポート型オブジェクト・配列・文字列・数値・真偽値・null
非対応JSON5(末尾カンマ・コメント)、JSONL(改行区切り)、BSON

使い方の流れ

  1. 整形したいJSONを「JSONを入力」欄に貼り付けます。APIレスポンスやログのコピーをそのまま貼り付けてください。
  2. インデントを「2スペース/4スペース/タブ」から選びます。GitHub上のリポジトリは2スペース、社内コーディング規約に合わせる場合は4スペースが無難です。
  3. 「整形する」を押すと、色分けされた整形結果が表示されます。キー・文字列・数値・真偽値がそれぞれ別の色で表示されるため、構造を直感的に追えます。
  4. 結果欄の下にキー数・ネスト深さ・サイズが表示されるので、データ規模の把握にも使えます。
  5. 「コピー」で整形済みJSONをクリップボードに転送し、エディタやチャットに貼り付けてレビューします。

こんな場面で使う

  • API開発・デバッグ:バックエンドが返す圧縮済みJSONを整形して、フロントエンドに渡すべきフィールドが正しく入っているかを目視で確認できます。
  • ログ調査:CloudWatch・Stackdriver・Datadog等から取り出したJSONログを整形し、エラー発生時のパラメータを素早く読み取れます。
  • 設定ファイルのレビュー:package.json、tsconfig.json、.eslintrc.json などの設定ファイルが破損していないかチェックする用途に使えます。
  • 外部サービス連携:Stripe、Slack、LINE Messaging APIなどのWebhookペイロードを保存しておき、後から整形して中身を確認するのに便利です。
  • 学習・教材作成:JSONの構造を初心者に説明する際、整形して階層を可視化することで理解が早まります。

使う前に知っておきたい注意点

  • JSONはダブルクォート必須です。シングルクォートで囲まれた文字列、末尾カンマ、コメントが含まれているとエラーになります。JavaScriptオブジェクトリテラルとは別物である点に注意してください。
  • 巨大なJSON(数十MB以上)はブラウザのメモリを大量に消費し、タブがフリーズする恐れがあります。サーバー側のCLI(jq、prettier)を使うのが安全です。
  • キーの順序は JSON.stringify が挿入順を保ちますが、JSON仕様上は順序保証がありません。差分比較する場合はソート機能のあるツールを併用してください。
  • 数値の精度はIEEE 754倍精度浮動小数で扱われます。9007199254740993 のような大きな整数は丸められる可能性があるため、IDは文字列で扱うのが安全です。

用語の補足

  • ネスト深さ:オブジェクト・配列が何重に入れ子になっているかを示す数値。深すぎる構造は可読性を下げるサインです。
  • JSON Schema:JSONの構造を定義するための仕様。APIの入出力契約を明示する際に使われます。
  • JSON Pointer:JSON内の特定の値を /users/0/name のようなパス表記で参照する仕組み。RFC 6901として定義されています。

よくある質問

構文エラーがある場合は赤いエラー欄に内容を表示します。多くのケースで「Unexpected token x in JSON at position N」のように位置が示されるため、その付近のクォートやカンマを確認してください。よくある原因はシングルクォート、末尾カンマ、コメント混入です。
標準のJSON仕様に準拠した整形のため、JSONL(改行区切り)やJSON5(末尾カンマ・コメント可)はそのまま扱えません。JSONLは1行ずつ取り出して整形してください。JSON5はコメント・末尾カンマを取り除いてから貼り付ける必要があります。
明確な決まりはありませんが、GitHubやnpmエコシステムでは2スペースが多数派です。社内規約に従う、エディタの既定値(PrettierデフォルトもJSONは2)に合わせる、というのが現実的な判断基準になります。深いネストが多い場合は2スペースの方が画面に収まりやすくなります。
数MB程度であれば一般的なPCで問題なく処理できますが、数十MBを超えると描画に時間がかかり、タブがフリーズする可能性があります。その場合はサーバー側で jq . などのCLIツールを使うか、必要部分だけを抜き出してから整形してください。
本ツールは入力時のキー順序を保ったまま整形します。アルファベット順や論理順に並べ替える機能は搭載していません。差分比較を目的とする場合は、両方のJSONを別途ソートしてから比較ツールにかけることをおすすめします。
整形結果をそのまま JSON.parseJSON.stringify(第3引数なし)に通せば1行に戻ります。本ツールには圧縮(minify)専用ボタンはありませんが、整形結果は標準JSONなのでブラウザコンソールやNode.jsで簡単にminifyできます。
いいえ、すべての整形処理はブラウザ上で完結します。APIキーや個人情報を含むJSONを貼り付けても、外部サーバーに送信されることは一切ありません。