JSON
JSON
JSON整形ツールについて
JSON整形ツールについて
概要
JSON整形ツールは、読みにくいJSON文字列を自動的に整形・フォーマットするオンラインツールです。インデントの調整・ミニファイ(圧縮)に対応し、APIレスポンスや設定ファイルのデバッグ・確認作業を効率化します。
APIレスポンスやログは1行に圧縮された状態で出力されることが多く、目視でネストの深さやキーの対応関係を追うのは困難です。かといって毎回エディタやIDEに貼り付けて整形するのは手間がかかります。本ツールはブラウザだけで完結するため、外部にデータを送信することなくその場で構造を可視化できます。
使い方
- 1テキストエリアにJSONテキストを貼り付けます。
- 2「モード」で整形方法(整形 / 圧縮)を選択します。
- 3「インデント」でスペース数を選択します。
- 4「変換」ボタンをクリックすると結果が表示されます。
- 5クリップボードへコピーボタンで整形後のJSONをコピーできます。
補足: 変換に失敗する場合は、末尾カンマ・シングルクォート・コメントの混入など、JSONとして不正な記述がないか確認してください。エラーメッセージにはおおよその位置(行・文字位置)が表示されます。
仕様・用語解説
- JSON(JavaScript Object Notation): 軽量なデータ交換フォーマットです。人間にも機械にも読みやすく、REST APIのリクエスト・レスポンスや設定ファイルなどで広く使われています。RFC 8259 / ECMA-404で標準化されています。
- 「整形」モード: インデントと改行を付与してJSONを読みやすく整形します。ネストされたオブジェクトや配列が階層構造で表示されます。
- 「圧縮」モード: 改行・スペースをすべて除去してJSONを1行に圧縮します。ネットワーク転送量を削減したい場合や、HTTPリクエストボディとして利用する場合に有効です。
- 「インデント」: 整形モード時に使用するスペース数を設定します(例: 2スペース、4スペース)。チームのコーディングスタイルに合わせて選択できます。
- バリデーション: 入力されたJSONが不正な場合(構文エラー)はエラーメッセージが表示されます。JSONのキーは二重引用符で囲む必要があり、末尾のカンマ(trailing comma)は許可されていません。
- RFC 8259について: JSONの構文を定めるインターネット標準です。値として使える型はオブジェクト・配列・文字列・数値・真偽値・nullの6種類のみで、日付型や関数、コメントは含まれません。JavaScriptのオブジェクトリテラルと似ていますが、キー名を必ず二重引用符で囲む点や、undefinedを表現できない点が異なります。
- JSON5 / JSONC との違い: tsconfig.jsonなどではコメントや末尾カンマを許容する「JSONC」という拡張記法が使われることがありますが、これは仕様上のJSONそのものではありません。本ツールは厳密なJSON(RFC 8259)としてパースするため、コメント付きの設定ファイルをそのまま貼り付けるとエラーになる場合があります。
ユースケース
- APIレスポンスを読みやすく整形してデバッグする場合。
- 設定ファイル(package.json、tsconfig.jsonなど)の確認・編集時。
- 本番環境向けにJSONを圧縮してファイルサイズを削減する場合。
- 末尾のカンマや引用符ミスによるJSON構文エラーの原因箇所を特定する場合。
"user":"id":1,"roles":["admin","editor"]のように1行にまとまったネスト構造のレスポンスを整形し、user.roles配列の中身をひと目で確認したい場合。- サーバーログに出力された構造化ログ(JSON Lines形式)を1件ずつ貼り付けて整形し、エラー発生時のフィールド値を確認する場合。
よくある質問
- 貼り付けたJSONデータはサーバーに送信されますか
- いいえ。整形・圧縮処理はすべてブラウザ内のJavaScriptで完結しており、入力したデータが外部サーバーへ送信されることはありません。APIキーや個人情報を含むレスポンスでも安心して貼り付けて確認できます。
- コメント付きのJSON(JSONC)は整形できますか
- 標準のJSONパーサーを使用しているため、コメント(//や/* */)や末尾カンマを含む文字列はエラーになります。整形する前にコメントを削除するか、JSONCではなく厳密なJSON形式に変換してから貼り付けてください。
- 「Unexpected token」エラーが出るのはなぜですか
- 主な原因は、キーや文字列値をシングルクォートで囲んでいる、末尾に余分なカンマがある、値がundefinedになっている、のいずれかです。エラーメッセージに表示される位置の周辺を確認してください。
- 数値の桁が大きいと結果が変わることがあるのはなぜですか
- JavaScriptの数値はIEEE 754倍精度浮動小数点で扱われるため、2の53乗を超える整数(例: 一部のSnowflake IDやDB上のbigint値)は精度が失われる場合があります。厳密な値を確認したい場合は、該当のフィールドを文字列型として扱っているAPI仕様かどうかを確認してください。
- 配列やオブジェクトの中身だけを圧縮せずに整形したい場合はどうすればよいですか
- 現在のバージョンではJSON全体に対して一括で整形・圧縮を適用する仕様です。特定の階層だけを個別に整形したい場合は、該当部分を抜き出して別途貼り付けてご利用ください。
- 日本語(マルチバイト文字)を含むJSONは正しく整形されますか
- はい。UTF-8で表現された日本語や絵文字を含む文字列も、エスケープされた\uXXXX形式・生の文字のどちらでも正しく整形されます。出力時に元の表記(エスケープの有無)を変えたい場合は、圧縮モードの出力をご確認ください。