JSONフォーマッター
はじめに
JSONフォーマッターは、JSONデータを扱うすべての人(開発者、APIテスター、データアナリスト、テクニカルライター)にとって不可欠なツールです。APIや設定ファイルからの生のJSONは、しばしば圧縮されていたりインデントが乱れていたりして、読み取りやデバッグが困難です。JSONフォーマッターは、乱雑なJSON入力を、適切なインデントと構文検証を備えた、きれいで構造化された出力に瞬時に変換します。
インストールが必要なコマンドラインツールやブラウザ拡張機能とは異なり、Toollect JSONフォーマッターはブラウザ内で完全に動作します。貼り付けるたびに即座に解析され、JSONの有効性と構造に関するフィードバックが即座に得られます。外部サーバーにデータが送信されることはないため、速度とプライバシーの両方を提供します。
REST APIレスポンスのデバッグ、デプロイ用の設定ファイルの準備、JSON構文の教育など、このツールは必要な精度と即時性を提供します。
仕組み
JSONフォーマッターは、JavaScriptのネイティブメソッドである JSON.parse() と JSON.stringify() によって動作します。これらは、すべてのモダンブラウザとNode.jsでJSONを処理するのと同じエンジンです。
パース
ツールは入力テキストを JSON.parse() に渡します。このメソッドは文字列を読み取り、メモリ内にJavaScriptオブジェクトまたは配列を構築しようとします。パーサーは厳格で、ECMA-404 JSON仕様に正確に従い、有効なJSON構文から逸脱するものはすべて拒否します。
検証
JSON.parse() が成功すれば、入力は有効なJSONです。失敗した場合、メソッドは説明メッセージ付きの SyntaxError をスローします。ツールはこのエラーをキャッチしてステータスエリアに表示します。この段階でよくあるエラー:
- Unexpected token:余分な文字、末尾のカンマ、引用符で囲まれていないキー
- Expected property name:プロパティ間のカンマ欠落、または誤った引用符
- Unexpected end of input:JSON文字列が途中で切れている、または括弧が閉じられていない
整形
有効なJSONの場合、ツールはパースされたオブジェクトをパラメータ space=2 で JSON.stringify() に渡します。これにより以下の処理が行われます:
- オブジェクトをJSON文字列として再シリアル化
- 各
{、}、[、]およびカンマの後に改行を挿入 - ネストレベルごとに2スペースでインデント
- 元のデータ型を保持
出力
整形された結果が出力エリアに表示され、読みやすさのために等幅フォントで表示されます。出力は読み取り専用ですが、ワンクリックでクリップボードにコピーできます。
使用方法
Toollect JSONフォーマッターの使用には設定や登録は不要です。以下の手順に従ってください:
-
ツールを開く — ブラウザでJSONフォーマッターページを開きます。
-
JSONを貼り付ける — 任意のソースからJSONテキストをコピーし、Ctrl+V(Macの場合はCmd+V)で入力エリアに貼り付けます。
-
結果を確認する — 貼り付け後、ツールが自動的に整形し、結果を即座に表示します。
-
ステータスを確認する — フィールド間のステータス表示を確認します:
- 緑色のメッセージで有効なJSONを確認
- 赤色のエラーメッセージでパーサーの問題を表示
-
結果をコピーする — 「コピー」をクリックして整形済みJSONをクリップボードに転送します。
-
やり直す — 「クリア」をクリックして両方のフィールドを空にします。
チュートリアル
シナリオ: REST APIレスポンスをデバッグしており、JSON構造を検査する必要があります。
-
JSONフォーマッターを開きます。
-
生のAPIレスポンスをコピーします:
{"status":"success","data":{"users":[{"id":1,"name":"Alice","email":"[email protected]","active":true},{"id":2,"name":"Bob","email":"[email protected]","active":false}],"total":2,"page":1},"timestamp":"2026-07-11T10:30:00Z"}
- 貼り付けて自動整形:
{
"status": "success",
"data": {
"users": [
{ "id": 1, "name": "Alice", "email": "[email protected]", "active": true },
{ "id": 2, "name": "Bob", "email": "[email protected]", "active": false }
],
"total": 2,
"page": 1
},
"timestamp": "2026-07-11T10:30:00Z"
}
- エラーを含むJSONをテスト:
{"status":"success","data":{"users":[{"id":1,"name":"Alice",}]}}
ツールに表示:Invalid JSON: Expected property name or '}' at position...
- コピーして使用 — 「コピー」をクリック。
上級者向けヒント
- 末尾カンマに注意:JSONでは最後の要素の後にカンマを置くことはできません
- 引用符での診断:不明な場合はフォーマッターに貼り付けてください
- 開発中にAPIレスポンスを検証:ツールを開いたままにして素早く検証
- BOM文字の確認:一見有効な文字列がパースできない場合、目に見えないUnicode文字が含まれている可能性があります
- 前後比較:並べて表示を使用して圧縮版と整形版を比較
- 他のツールとの連携:整形済み出力をdiffツールにコピーして変更を追跡
代替ツール
| ツール / 方法 | 最適な用途 | 制限事項 |
|---|---|---|
| Toollect JSONフォーマッター | ブラウザ整形、プライバシー重視 | 初回読み込みにインターネットが必要 |
| JSONLint | 高速JSON検証 | サーバーのみ、オフラインモードなし |
| VS Code内蔵フォーマッター | エディタ内整形 | VS Codeのインストールが必要 |
| jq(コマンドライン) | プログラムによるJSON処理 | コマンドラインのみ |
トラブルシューティング
| 問題 | 原因 | 解決策 |
|---|---|---|
| "Unexpected token"エラー | 余分なカンマ、引用符なしキー | 末尾カンマを確認;二重引用符を使用 |
| "Expected property name"エラー | カンマ欠落 | キーと値のペアの間にカンマを追加 |
| "Unexpected end of input"エラー | JSONが途中で切れている | すべての括弧が閉じているか確認 |
| 整形後出力が空白 | 入力フィールドが空 | JSONテキストが貼り付けられているか確認 |
| 大きなファイルで整形が遅い | 非常に大きな入力 | JSONを小さな部分に分割 |
技術仕様
パフォーマンス
| テキストサイズ | 処理時間 | メモリ使用量 |
|---|---|---|
| 1 KB(典型的なAPI) | < 1 ms | < 1 MB |
| 100 KB(大規模設定) | < 5 ms | < 5 MB |
| 1 MB(データエクスポート) | < 50 ms | < 50 MB |
技術詳細
- 検証エンジン:ネイティブ
JSON.parse()(ECMAScript仕様) - 整形エンジン:ネイティブ
JSON.stringify()、space=2 - イベントモデル:入力により自動整形をトリガー(300msデバウンス)
- 互換性:Chrome 80+、Firefox 75+、Safari 13+、Edge 80+、Samsung Internet 13+、Opera 67+
プライバシー
- ゼロデータ転送:すべての処理はブラウザのメモリ内で完了
- Cookie、localStorage、sessionStorageを使用しません
- 分析やトラッキングスクリプトはありません
- 初回読み込み後はオフラインでも使用可能
- 登録、ログイン、APIキーは不要です
機能
- 自動インデントによるJSONの即時整形・美化
- 詳細なエラーメッセージ付きリアルタイムJSON検証
- エラー位置を自動表示する構文エラー検出
- ワンクリックで整形済みJSONをコピー
- ワンクリックで入力と出力をクリア
- ブラウザ内で完全実行 — サーバーにデータを送信しません