英語のJSONエラーを貼り付けると、意味と原因、直し方を日本語で表示します。JSONを貼り付ければ、間違っている場所を行番号つきで示します。
このツールはブラウザの中だけで動いています。入力した内容が、外部に送信されることはありません。入力内容は外部に送信されません。
詳しく英語のJSONエラーを、日本語で原因まで分かるようにするツール
JSONを扱うプログラムでは、「Unexpected token < in JSON at position 0」のような英語のエラーが表示されます。しかし、この文だけでは何が起きているのか、どこを直せばよいのかが分かりません。
本ツールの「エラー文の意味を調べる」にエラーメッセージを貼り付けると、意味・よくある原因・直し方を日本語で表示します。Chrome・Firefox・Safari・Node.js・Pythonのエラーに対応しています。
原因のJSONを「JSONをチェック・整形」に貼り付ければ、間違っている行と文字の位置を、該当行の抜粋とともに示します。末尾カンマやシングルクォートなどは自動修復でき、整形・圧縮・キーの並べ替えもこの画面で完結します。
こんなシーンで便利です
fetchやaxiosでJSONのエラーが出た
「Unexpected token <」などのエラー文を貼り付けると、HTMLが返ってきている、レスポンスが空、といった原因と確認方法が分かります。
position ○○ が何行目か分からない
エラー文とJSONを貼り付けると、position の位置が何行目の何文字目かを、該当行の抜粋とともに表示します。
手で書いたJSONや設定ファイルが読み込めない
末尾カンマ、シングルクォート、コメント、全角の記号など、よくある間違いを検出して自動で直せます。
APIのレスポンスを見やすくしたい
1行に潰れたJSONを整形し、ツリー表示で階層を開閉しながら確認できます。大きなIDの数値も桁を崩さずに表示します。
使い方は簡単 4ステップ
- エラーが出ている場合は「エラー文の意味を調べる」にエラーメッセージを貼り付けて、原因を確認します。
- 「JSONをチェック・整形」に原因のJSONを貼り付けると、間違っている場所が行番号つきで表示されます。
- 自動修復で直せる場合は、「修復結果を入力欄へ反映」で修正後のJSONを取り出します。
- 「整形」「圧縮」などで結果を作り、コピーまたは保存します。
※エラー文の解説とJSONのチェックは連動しています。両方に貼り付けると、エラー位置が入力したJSONのどこにあたるかを表示します。
ご利用時の注意点
- 自動修復の範囲:コメント、末尾カンマ、シングルクォート、クォートのないキー、全角の記号、BOM、undefined、Pythonの True・False・None が対象です。閉じ括弧の不足やコロンの欠落は手動での修正が必要です。
- コメントの扱い:JSONの規格ではコメントを保持できないため、修復時に削除されます。
- 処理の上限:約2MBを超える入力では、動作が重くなるのを防ぐため自動の構文チェックを停止します。
- ほかの形式に変換する場合は、CSV⇔JSON変換、JSON⇔YAML変換、JavaScriptオブジェクト⇔JSON変換をご利用ください。
- 型定義の生成やスキーマによる検証は、JSON→TypeScript型定義生成とJSON Schemaバリデータで行えます。
よく出るJSONエラーの意味と原因の早見表
ブラウザやNode.js、Pythonで表示される代表的なエラーメッセージと、その意味・主な原因をまとめました。
| エラーメッセージ(例) | 意味 | 主な原因 |
|---|---|---|
| Unexpected token '<' / Unexpected token < in JSON at position 0 | JSONではなくHTMLを読み込もうとしている | URLの間違い(404)、ログイン切れ、サーバーエラー |
| Unexpected end of JSON input | JSONが途中で終わっている、または空 | 本文のないレスポンス、閉じ括弧の不足 |
| "undefined" is not valid JSON | undefined を読み込もうとしている | 変数に値が入っていない、キー名の打ち間違い |
| "[object Object]" is not valid JSON | すでにオブジェクトの値をもう一度読み込んでいる | res.json() の結果をさらに JSON.parse している |
| Expected property name or '}' | キーの書き方が規格に合っていない | キーのクォートなし、シングルクォート、末尾カンマ |
| Expected ',' or '}' after property value | カンマが抜けている | 項目間のカンマ忘れ、文字列内の " のエスケープ忘れ |
| Bad control character in string literal | 文字列の中に改行やタブがそのまま入っている | 改行を \n と書いていない |
| Unexpected non-whitespace character after JSON | JSONのあとに余計なデータがある | JSON Lines形式をまとめて読み込んでいる |
| Expecting value: line 1 column 1 (char 0)(Python) | 値があるべき場所に値がない | 空の文字列やHTMLを読み込んでいる |
※同じ原因でも、ブラウザやバージョンによってエラー文の表現は異なります。上の表にない表現でも、「エラー文の意味を調べる」に貼り付けると該当する解説を表示します。
JSONエラーを早く解決するための考え方
エラー文から原因を絞り込むときに押さえておきたいポイントです。
まず「何を読み込もうとしたか」を確認する
JSONのエラーの多くは、JSONの書き方の間違いではなく、そもそもJSONではないものを読み込んでいることが原因です。HTML、空の文字列、undefined、すでに読み込み済みのオブジェクトなどが典型です。
エラーの原因を探す前に、JSON.parse や res.json() に渡している中身を console.log やネットワークタブで確認すると、多くの場合すぐに原因が分かります。
position は行番号ではなく、先頭からの文字数
「at position 123」の数字は、JSONの先頭から数えた文字の位置(0から数える)です。1行に潰れたJSONでは、この数字だけで場所を探すのは困難です。
当ツールにエラー文とJSONの両方を貼り付けると、何行目の何文字目かに変換して、該当する行を抜き出して表示します。
大きな数値のIDは、文字列で受け渡す
JavaScriptは約9007兆を超える整数を正確に扱えないため、JSON.parse した時点で末尾の桁が変わってしまいます。エラーは出ないため、気づきにくい不具合の原因になります。
データベースのIDなど桁数の多い数値は、APIの段階で文字列として渡すのが安全です。当ツールは大きな数値を検出して知らせます。
JSONエラーの対応でよくある失敗と対策
HTMLが返ってきているのに、JSONの書き方を疑い続けてしまう
「Unexpected token <」は、JSONの中に < があるのではなく、JSONの代わりにHTMLのページが返ってきていることを示しています。JSONの中身を見直しても原因は見つかりません。
💡 対策・解決策を見る▼
position の数字を行番号だと思い込んで探してしまう
position は先頭からの文字数なので、行番号として探しても見当違いの場所を見てしまいます。
💡 対策・解決策を見る▼
手で書いたJSONに、JavaScriptやPythonの書き方が混ざる
シングルクォート、クォートのないキー、末尾カンマ、True や None などは、JavaScriptやPythonでは正しくても、JSONではエラーになります。
💡 対策・解決策を見る▼
機密情報を含むデータを、外部送信型の整形サイトに貼り付けてしまう
APIのレスポンスには、アクセストークンや個人情報が含まれていることがあります。サーバー側で処理する整形サービスに貼り付けると、通信経路やサーバーのログに残る可能性があります。
💡 対策・解決策を見る▼
よくある質問(FAQ)
Q.「Unexpected token < in JSON at position 0」はどういう意味ですか
A. JSONを読み込もうとしたのに、先頭が「<」で始まるHTML(Webページ)が返ってきた、という意味です。APIのURLの間違いによる404ページ、ログイン切れによるログイン画面への転送、サーバーエラーのページなどが主な原因です。ブラウザの開発者ツールの「ネットワーク」タブで、実際に返ってきた中身を確認してください。
Q.「Unexpected end of JSON input」の原因は何ですか
A. JSONが途中で終わっているか、中身が空の状態で読み込もうとしたときに出るエラーです。本文のないレスポンス(204 No Contentなど)に対して res.json() を実行した場合や、閉じ括弧・閉じ引用符が足りない場合に発生します。空でないことを確認してから読み込むか、JSONを当ツールに貼り付けて不足している括弧の位置を確認してください。
Q.エラーに出てくる「position 123」は何行目のことですか
A. position はJSONの先頭から数えた文字の位置(0から数える)で、行番号ではありません。当ツールの「エラー文の意味を調べる」にエラー文を、「JSONをチェック・整形」にそのJSONを貼り付けると、その位置が何行目の何文字目かを、該当する行の抜粋とともに表示します。
Q.コメントや末尾のカンマ、シングルクォートが入ったJSONは直せますか
A. 自動修復で直せます。コメント、末尾の余分なカンマ、シングルクォート、クォートのないキー、全角の記号、undefined、Pythonの True・False・None を検出して補正し、どの補正をしたかを一覧で表示します。文字列の中身は書き換えません。閉じ括弧の不足やコロンの欠落は、内容を誤って推測しないよう手動での修正が必要です。
Q.大きなIDの数値が、整形すると別の数字に変わってしまいます
A. JavaScriptでは約9007兆(2の53乗)を超える整数を正確に扱えないため、一般的な整形ツールでは末尾の桁が変わってしまいます。当ツールはこうした大きな数値を検出して知らせ、元の桁のまま出力します。プログラムで扱う場合は、IDなどを文字列として受け渡すことをおすすめします。
Q.「\u3042」のような表記を日本語に戻せますか
A. 戻せます。JSONを貼り付けて「整形」を押すと、\u3042 のような文字コード表記を「あ」などの日本語に戻して表示します。反対に、日本語を \u3042 の形式にしたい場合は「日本語を \uXXXX 形式で出力する」をオンにしてください。
Q.APIのレスポンスなど、機密情報を含むデータを貼り付けても大丈夫ですか
A. 大丈夫です。構文チェック、整形、エラー文の解説を含むすべての処理をブラウザ内だけで行い、入力内容を外部のサーバーへ送信・保存しません。
あなたの声で、
このツールをより鋭く。
「こんな機能が欲しい」「ここを直してほしい」といったご意見や、新しいツールのリクエストを募集しています。エンジニアが直接目を通し、開発の参考にさせていただきます。