JSONパースエラー?
JSON.parse()のエラーを即座に特定して修正。すべての構文エラーの行・列・原因を正確に表示し、ワンクリックで自動修復。
JSONパースエラーのデバッグ
コード内のパース失敗を見つけて修正するステップバイステップの方法。
必ず生の入力をログに出す
JSON.parse()を呼ぶ前に生の文字列をログに出力しましょう。多くのパースエラーはJSON文字列ではなく、HTMLエラーページ、空のボディ、または既にパース済みのオブジェクトを受け取ることが原因です。
Content-Typeヘッダーを確認
APIレスポンスのContent-Typeがtext/htmlの場合、JSONではなくエラーページを受信している可能性が高いです。APIエンドポイントのURLと認証情報を確認してください。
二重パースに注意
HTTPクライアント(axios、fetch)がJSONレスポンスを自動パースする場合、さらにJSON.parse()を呼ぶと失敗します。パースする前にデータが既にオブジェクトでないか確認しましょう。
コードでエッジケースを処理
JSON.parse()は必ずtry-catchで囲みましょう。パース前に空文字列やnull値を確認。パース失敗時は適切なデフォルト値やエラーオブジェクトを返してください。
パースエラーの診断
不可解なエラーメッセージから正常なJSONドキュメントへ数秒で。
エラー位置の正確な特定
パース失敗の原因となった行・列・文字を正確に表示。エディタ上でエラー箇所がハイライトされるので探す必要がありません。
わかりやすいエラーメッセージ
「Unexpected token < at position 0」のような不可解なメッセージの代わりに、「3行目でダブルクォートが必要な箇所にシングルクォートがあります」のような分かりやすい説明を表示。
一般的なパースエラーの自動修正
末尾カンマ、シングルクォート、コメント、引用符なしキー — JSON.parse()失敗の4大原因 — をワンクリックで修復。
JSONパースエラーを理解する
JSON.parse()エラーはJavaScriptアプリケーションで最も一般的なランタイム例外の一つです。入力文字列がJSON仕様に厳密に準拠していない場合に発生します。エラーメッセージのパターンを理解すれば、推測なしで根本原因を特定できます。
エラーメッセージ早見表
「Unexpected token <」— JSONではなくHTMLを受信(URLを確認)
「Unexpected end of input」— レスポンスが途中で切れている(ネットワークを確認)
「Unexpected token o at position 1」— 既にパース済みのオブジェクトをパースしようとしている
JSONパースエラー — よくある質問
JSON.parse()の「Unexpected token」とは?
特定の位置でパーサーが想定外の文字を検出したことを意味します。例えば「Unexpected token <」は通常JSONではなくHTMLエラーページを受信したことを示します。「Unexpected token ,」は末尾カンマまたは二重カンマです。
「Unexpected end of JSON input」とは?
すべての閉じ括弧が見つかる前にJSON文字列が途切れたことを意味します。一般的な原因:ネットワークタイムアウトによるAPIレスポンスの切断、誤ってスライスされた文字列、完全にダウンロードされなかったファイル。
「Unexpected token o at position 1」はなぜ起きる?
ほぼ確実に、既にパース済みのオブジェクトに対してJSON.parse()を呼んでいます。オブジェクトの文字列表現は「[object Object]」で、位置1の「o」がエラーを引き起こします。二重パースしていないか確認してください。
コードの「SyntaxError: JSON.parse」を直すには?
まず、パースしようとしている生の文字列をログに出力してください。このバリデータに貼り付ければ正確なエラーがわかります。一般的なコード修正:APIが実際にJSON(HTMLではなく)を返しているか、Content-Typeヘッダーを確認、レスポンスボディが空でないか確認。
APIレスポンスでJSON.parseが失敗するのはなぜ?
3つ確認:(1) レスポンスのContent-Typeがtext/htmlではなくapplication/jsonであること、(2) レスポンスボディが空でないこと(ステータス204やエラーページ)、(3) サーバーがJSONではなくJSONP(コールバックラッパー)を返していないこと。
コメント付きのJSONをパースできる?
標準のJSON.parse()はコメントを拒否します。データに//や/* */コメントが含まれる場合、まず除去が必要です。このツールは自動修正時にコメントを自動除去し、JSON.parse()で受け入れ可能な有効なJSONを生成します。
JSONとJavaScriptオブジェクトの違いは?
JSONはダブルクォートのキーと文字列、末尾カンマなし、コメントなし、undefinedなしが必要です。JavaScriptオブジェクトはこれらすべてを許容します。JSONはJavaScriptオブジェクトリテラル構文の厳密なサブセット — すべてのJSONは有効なJSですが、すべてのJSオブジェクトが有効なJSONとは限りません。
関連ツール
ほかの JSON ツールも活用してワークフローを効率化しましょう。
無効なJSONをオンラインで修正
壊れたJSONを貼り付けるだけで自動修正。末尾のカンマ、シングルクォート、コメント、引用符なしのキーなどの一般的な構文ミスに対応。
JSON 検証
正確なエラーメッセージでJSONを即座に検証。シンタックスエラーの正確な行番号と列番号。
JSON 整形
設定可能なインデントでJSONを整形・美化。JSONを貼り付けて即座にフォーマット。
JSON Schema 検証
JSONスキーマに対してJSONデータを検証。正確なパス付きの詳細なエラーメッセージ。
JSONファイルが開けない?
ブラウザでどんな.jsonファイルも即座に開けます。ソフトのインストール不要、ファイル関連付けの設定不要、互換性の問題なし。すべてのOSで動作します。