JSON整形ツール

JSONの整形、検証、軽量化を瞬時に行います。

JSONを貼り付け

data.json
準備完了。JSONを貼り付けてアクションを選択してください。

JSONの処理はすべてお使いのブラウザ上で行われます。BroBroGoにデータがアップロードされることはありません。

よくある質問

JSONデータはアップロードされますか?

いいえ。フォーマッタはお使いのブラウザ上でローカルに動作するため、JSONデータが外部にアップロードされることはありません。

軽量化(Minify)とは何ですか?

「軽量化(Minify)」は、JSONのデータ構造を維持したまま、不要なスペースや改行を取り除いてファイルサイズを削減します。

ブラウザ上で完結する安全な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として処理できます。