JSONを整形・構文チェックする
現在のJSONを貼り付け、Strict JSONとして有効か確認してから、整形または1行への圧縮を実行できます。
JSON整形・圧縮・構文チェックツールを開く結論:最初のError Positionから直前のTokenまで見る
現行ツールは独自パーサーがError Indexを行・列へ変換し、該当行の抜粋と^を表示します。「エラー位置へ移動」で入力欄の文字を選択できます。
Missing Commaでは次のKey、Missing Braceでは入力末尾など、原因より後ろで停止することがあります。表示文字だけでなく、直前のValue、Comma、Quote、Brace、Bracketを確認します。
よくあるErrorと確認箇所
| Error候補 | 確認箇所 | 修正方針 |
|---|---|---|
| Comma不足 | 前のValueと次のKeyの間 | Member間へ1つ追加 |
| 末尾Comma | }または]の直前 | 最後のCommaだけ削除 |
| Brace / Bracket不足 | 入力末尾とNest | 対応する閉じ記号を確認 |
| Quote不足 | Stringの開始と終了 | Double Quoteを対応させる |
| Invalid Escape | Backslash直後 | JSONで許可されたEscapeへ直す |
| Colon不足 | Object Keyの直後 | KeyとValueの間へ:を置く |
Errorを増やさない修正方法
- 元JSONを複製します。
- 最初のError位置と直前のTokenを確認します。
- 一箇所だけ直して構文チェックします。
- 次のErrorが出たら同じ順序を繰り返します。
- Valid後に整形し、括弧の階層を再確認します。
DevelopToolsのJSON整形ツールで確認できること
現行ツールは、貼り付けたJSONまたは1件の.jsonファイルを独自のStrict JSONパーサーで解析します。整形、1行への圧縮、構文チェックに対応し、エラー時は行・列、該当行の抜粋、キャレット、入力欄の該当位置へ移動するボタンを表示します。
| 機能 | 現行ツールの対応 |
|---|---|
| 入力 | 貼り付け、.jsonファイル選択、1ファイルのDrag & Drop |
| 整形 | 2・4・8スペースまたはTab、LF・CRLF、末尾改行 |
| 検証 | Strict JSON、行・列、抜粋とキャレット、重複キー警告 |
| 出力 | コピー、UTF-8 JSON保存、ファイル名指定、入出力サイズ |
| 保持 | 巨大整数、指数表記、文字列のエスケープ字句、重複キー |
| 未対応 | JSONC・JSON5、自動修復、コメント除去、Quote修復、キーSort、Escape解除 |
エラーを見つけても内容は自動修復しません。原因を確認して入力側を修正し、再度「構文チェック」を実行します。ルートがObjectでなくても、Array、String、Number、true、false、nullはJSON Textとして検証できます。
Strict JSONとして確認する共通手順
RFC 8259を基準に、ObjectのNameとStringはDouble Quoteで囲み、MemberやArray要素の間だけにCommaを置きます。Comment、Single Quote、Unquoted Key、Trailing Commaは通常のJSONではありません。
まず元データを残したまま入力し、「構文チェック」で最初のエラー位置を確認します。エラー周辺を一箇所ずつ直して再チェックし、Validになってから整形または圧縮します。複数箇所を推測で一括置換すると、String内の記号まで変える危険があります。
- JSONを貼り付けるか、.jsonファイルを1件読み込みます。
- 構文チェックを実行し、行・列・キャレットが示す位置を確認します。
- 元の仕様と照合して一箇所を修正し、再チェックします。
- Validになった後でインデント、改行コード、末尾改行を選びます。
- 出力を再確認し、コピーまたは別名のJSONとして保存します。
構文チェックは「JSONとして読める」ことの確認です。必須Property、値の型、範囲など業務上の構造はJSON Schemaで別に検証します。
整形・圧縮・検証・修復を混同しない
| 処理 | 目的 | データへの作用 |
|---|---|---|
| 構文チェック | Strict JSONとして解析できるか確認 | 入力を直さない |
| 整形 / Pretty Print | 改行とIndentで階層を見やすくする | Formatting用Whitespaceを変更 |
| 圧縮 / Minify | Formatting用Whitespaceを除いて1行化 | gzip・Brotliとは別 |
| 自動修復 | 壊れた構文を推測して直す | 現行ツールは未対応 |
| Schema検証 | Property・型・制約を確認 | JSON Schema検証ツールの役割 |
整形や圧縮はInvalid JSONへ適用できません。先に構文を直し、変換後のJSONも再度解析できることを確認します。
機密JSONと大きなJSONを扱うときの注意
入力JSON、選択したファイル、処理結果はブラウザ内で解析され、DevelopToolsのサーバーや外部APIへ送信されません。LocalStorageへ保存するのはIndent、Theme、Font、Editor Sizeなどの表示設定だけで、入力本文や処理履歴は保存しません。
処理はWeb Workerを優先してUI Threadから分離します。50万文字を超える場合はEditorの構文色分けを省略しますが、整形・圧縮・検証自体は継続します。全Text、構文木、出力をMemoryへ保持するため、処理可能Sizeは端末とBrowserのMemoryに依存します。
- API Key、Access Token、Cookie、個人情報は共有前にマスキングする
- 大きなファイルはCopyで段階的に試し、他の重いTabを閉じる
- 色分けが消えてもエラー表示と変換結果を確認する
- 元ファイルを上書きせず、別名保存して差分を確認する
JSON仕様とコマンドの一次資料
JSONの文法はRFC 8259、JavaScript APIはMDN、JSONCはVisual Studio Code公式、jqのOptionはjq公式Manualを確認します。RuntimeごとにJSON.parseのError文言は異なるため、記事の「Unexpected token」は代表的な呼び方として扱います。
具体例:閉じ波括弧がないJSONを直す
{"name":"Alice","age":20のようにObjectが閉じていない入力を使います。作業前に元データを残し、機密値を含む場合は共有用Copyで確認します。
入力末尾のエラーとObjectの開始を照合して}を補います。最後に構文Valid、2つのKey、Number値、余分な末尾文字がないことを照合し、エラーがなくなったことを再確認します。
- 対象JSONを入力し、最初に構文チェックを実行します。
- 行・列とキャレットが示す文字を、前後の構造と一緒に確認します。
- 原因を一箇所修正して再チェックします。
- Validになったら必要に応じて整形または圧縮します。
- 結果を別名保存し、利用先でも読み込めることを確認します。
修正前後のJSONを残すと、意図した構文修正以外の値変更をテキスト差分で確認できます。
よくある質問
- 入力したJSONはサーバーへ送信されますか?
- 送信されません。入力、ファイル読込、解析、整形、圧縮、コピー、保存はブラウザ内で処理されます。LocalStorageへ残るのは表示設定だけです。
- 構文エラーを自動で修復できますか?
- できません。行・列と該当箇所を手掛かりに利用者が入力を修正し、再度構文チェックします。推測による自動修復とは役割を分けています。