本文へ移動
Develop Tools
← 使い方ガイドへ戻る

JSONの構文エラーを見つける方法|間違っている行・列をチェック

JSONが読めないときは全体を眺めて推測せず、パーサーが停止した最初の行・列から確認します。表示位置は原因そのものではなく、構文を続けられなくなった場所の場合があります。

JSONをパーサーへ渡し、Validまたは行・列付きErrorへ分岐する図
JSONをパーサーへ渡し、Validまたは行・列付きErrorへ分岐する図

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 EscapeBackslash直後JSONで許可されたEscapeへ直す
Colon不足Object Keyの直後KeyとValueの間へ:を置く

Errorを増やさない修正方法

  1. 元JSONを複製します。
  2. 最初のError位置と直前のTokenを確認します。
  3. 一箇所だけ直して構文チェックします。
  4. 次のErrorが出たら同じ順序を繰り返します。
  5. 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内の記号まで変える危険があります。

  1. JSONを貼り付けるか、.jsonファイルを1件読み込みます。
  2. 構文チェックを実行し、行・列・キャレットが示す位置を確認します。
  3. 元の仕様と照合して一箇所を修正し、再チェックします。
  4. Validになった後でインデント、改行コード、末尾改行を選びます。
  5. 出力を再確認し、コピーまたは別名のJSONとして保存します。

構文チェックは「JSONとして読める」ことの確認です。必須Property、値の型、範囲など業務上の構造はJSON Schemaで別に検証します。

整形・圧縮・検証・修復を混同しない

処理目的データへの作用
構文チェックStrict JSONとして解析できるか確認入力を直さない
整形 / Pretty Print改行とIndentで階層を見やすくするFormatting用Whitespaceを変更
圧縮 / MinifyFormatting用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値、余分な末尾文字がないことを照合し、エラーがなくなったことを再確認します。

  1. 対象JSONを入力し、最初に構文チェックを実行します。
  2. 行・列とキャレットが示す文字を、前後の構造と一緒に確認します。
  3. 原因を一箇所修正して再チェックします。
  4. Validになったら必要に応じて整形または圧縮します。
  5. 結果を別名保存し、利用先でも読み込めることを確認します。

修正前後のJSONを残すと、意図した構文修正以外の値変更をテキスト差分で確認できます。

よくある質問

入力したJSONはサーバーへ送信されますか?
送信されません。入力、ファイル読込、解析、整形、圧縮、コピー、保存はブラウザ内で処理されます。LocalStorageへ残るのは表示設定だけです。
構文エラーを自動で修復できますか?
できません。行・列と該当箇所を手掛かりに利用者が入力を修正し、再度構文チェックします。推測による自動修復とは役割を分けています。