ブラウザ上で完結する安全なJSON処理
JSON整形ツールは、JSONデータの整形、検証、および軽量化を瞬時に行うためのツールです。データの処理はすべてお使いのブラウザ上で行われます。BroBroGoにデータがアップロードされることはありません。外部サーバーにデータを送信することなく、ローカル環境で安全にJSONデータの構造化やエラーチェックを実行できます。
本ツールは、APIレスポンスの検証、設定ファイルの整形、データ転送用の軽量化、そして複雑なデータ構造の探索など、開発やデータ管理における様々な用途に対応します。
多彩な入力方法とファイル制限
処理したいJSONデータは、以下の方法でツールに読み込ませることができます。
- テキストの直接貼り付け: 入力エリアにJSONテキストを直接ペーストします。
- ファイルの読み込み: 「ファイルを開く」ボタンをクリックするか、ドラッグ&ドロップ操作によって
.jsonまたは.txtファイルを直接読み込めます。
ファイル読み込み時には、以下の仕様と制限が適用されます。
- ファイル形式:
.jsonおよび.txtファイルのみに対応しています。これら以外の形式を選択した場合は「対応していないファイル形式です。.json または.txt ファイルを選択してください。」と表示されます。 - 文字コード: UTF-8でエンコードされたテキストファイルである必要があります。UTF-8以外のファイルは「このファイルはUTF-8テキストではないため、ここでは開けません。」というエラーになります。
- ファイルサイズ制限: 読み込めるファイルサイズには上限があります。上限を超えるファイルを読み込もうとすると「ファイルが大きすぎます。上限は
{limit}です。」と表示されます。また、入力データ全体が処理限界を超えている場合は「入力が{limit}を超えており、このツールでは処理できません。」と警告されます。 - 読み込みエラー: ファイルの読み取りに失敗した場合は「このファイルを読み取れませんでした。もう一度選択してください。」と表示されます。
構文エラーの検出と自動修復機能
本ツールは、入力されたJSONが仕様に準拠しているかを厳密に検証します。検証処理において同期処理の閾値は250,000文字に設定されており、最大10 MiBまでの入力をサポートしています。検証に過度な時間がかかる場合は「このJSONの検証に時間がかかりすぎたため中断しました。より小さいドキュメントでお試しください。」と表示されます。
JSONが不完全または不正な構造である場合、以下の具体的なエラーメッセージと発生箇所(「{line} 行目、{col} 列目」)が表示され、「エラー箇所へ移動」ボタンで該当箇所を特定できます。
- 「項目の間にカンマがありません」
- 「閉じ括弧の前に余分なカンマがあります」
- 「オブジェクトのキーはダブルクォートで囲む必要があります」
- 「プロパティ名の後にコロンがありません」
- 「閉じクォートのない文字列があります」
- 「JSONが途中で終わっています。途切れているようです」
- 「値があるべき場所に予期しない文字があります」
- 「このJSONはネストが深すぎて処理できません」
- 「キー
{key}が重複しています。整形する前に一方を削除してください」 (本ツールは重複キーを自動でマージせずエラーとして検出します)
また、非標準的なJSON形式が検出された場合、ツールはそれを検知して修復を提案します。
| 検出される形式 | 検出メッセージ | 修復適用時の動作 |
|---|---|---|
| Markdownコードブロック | 「Markdown のコードフェンスに囲まれた JSON のようです。」 | 「適用するとフェンス内の JSON だけが残ります。」 |
| エスケープされた文字列 | 「文字列としてエスケープされた JSON のようです。」 | 「適用すると文字列がエスケープ解除され、通常の JSON になります。」 |
| Python辞書型 | 「JSON ではなく Python 風の辞書のようです。」 | 「適用すると引用符や True/False/None が JSON に書き換えられます。」 |
| JSON Lines | 「JSON Lines(1 行につき 1 つの値)のようです。」 | 「適用すると各行が 1 つの JSON 配列にまとめられます。」 |
| JSONP | 「JSONP コールバックに包まれた JSON のようです。」 | 「適用するとコールバックのラッパーが取り除かれます。」 |
| コメント付きJSON (JSONC) | 「JSONC(コメントや末尾のカンマ)のようです。構文を JSONC に切り替えるか、修復を適用してください。」 | 「適用するとコメントと末尾のカンマが取り除かれます。」 |
「修復をプレビュー」をクリックすると、「修復プレビュー」画面が開き、「元のテキスト」と「修復後」を比較できます。修復範囲が全体に及ぶ場合は「プレビューは省略されています。修復は文書全体に適用されます。」と表示されます。自動修復が不可能な場合は「この入力は自動では修復できませんでした。」と表示されます。「修復を適用」を実行すると「修復を適用しました。Ctrl/Cmd+Z で元に戻せます。」と表示され、取り消しも可能です。
コード表示とインタラクティブなツリー表示
出力ビューは「コード」表示と「ツリー」表示の2つのモードを切り替えて使用できます。
コード表示
整形されたJSONテキストを表示します。インデント幅を選択して「整形」を実行すると「JSONを整形しました。」と表示されます。「軽量化」を実行すると、不要なスペースや改行が排除され「JSONを軽量化しました。」と表示されます。
「キーを並べ替え」ボタンを使用すると、オブジェクトのキーをコードポイント順に再帰的に並べ替えることができます(配列内の要素順序は変更されません)。実行後は「キーを並べ替えました。配列の順序は変わっていません。Ctrl/Cmd+Z で元に戻せます。」と表示されます。
ツリー表示
「JSONツリー」ラベルのもとで、データをインタラクティブな階層構造として視覚的に探索できます。ルートノードは「ルート」と表示されます。
- エラー時の制限: JSONが無効な状態ではツリー表示できず、「ツリー表示するには、JSONのエラーを修正してください。」と表示されます。
- サイズ制限: データが大きすぎる場合は「このJSONは大きすぎるため、ツリー表示できません。」または「このJSONは値が多すぎるため、ツリー表示できません。」と表示されます。
- 展開制限: 「すべて展開」を実行した際、データが巨大な場合は「このJSONは大きすぎて全体を展開できません。先頭の
{count}行のみ表示しています。」と制限され、「さらに{count}件を表示…」ボタンで追加表示します。 - ノード操作: 各ノードは「
{key}を展開」や「{key}を折りたたむ」ボタンで個別に開閉できます。 - 検索機能: 「キーと値を検索」入力欄から検索を行えます。一致件数は「
{current}/{total}件」または上限に達した場合は「{current}/{total}+ 件」と表示され、「前の一致」「次の一致」ボタンで移動できます。一致がない場合は「一致なし」と表示されます。 - データ抽出: 各ノードの「
{key}のコピーオプション」メニューから、「値をコピー」、「JSON Pointerをコピー」、または「JSONPathをコピー」を選択して、特定のデータパスや値をクリップボードに取得できます。
なお、本ツールはJavaScriptの標準的な数値制限に影響されず、巨大な整数(Large Integers)であっても精度を失うことなく正確に保持して処理します。
よくある質問(FAQ)
JSONデータはアップロードされますか?
いいえ。フォーマッタはお使いのブラウザ上でローカルに動作するため、JSONデータが外部にアップロードされることはありません。
軽量化(Minify)とは何ですか?
「軽量化(Minify)」は、JSONのデータ構造を維持したまま、不要なスペースや改行を取り除いてファイルサイズを削減します。
キーの並べ替えを行うと配列の順番も変わりますか?
いいえ。オブジェクトのキーはコードポイント順に再帰的に並べ替えられますが、配列内の要素の順序は一切変更されません。
JSONCやJSON Linesなどの形式も処理できますか?
はい。構文設定で「JSONC」を選択するか、自動検出された修復機能を適用することで、コメントの除去や配列への変換を行い、標準的なJSONとして処理できます。