JSONツール

JSONバリデーター原文のまま、原因を探す

手動ではCtrl/Cmd+Enterで実行できます。診断の行・列を選ぶと入力内の該当位置へ移動します。

JSONバリデーター

JSON入力

入力はこのブラウザータブ内で処理し、アップロードや永続保存は行いません。

診断

検証待ちです。

JSONCでは//と/* */を許可します。末尾カンマはエラーです。

未実行または古い結果です。現在の入力を検証してください。

出力は診断と短い原文抜粋です。修正済みJSONではありません。

設定の読み込みに成功したのに、同じ項目の値がいつの間にか変わっている。そんなときJSONバリデーターなら、通常のオブジェクトへ変換する前の重複キーを確認できます。後の値で上書きしてから判定する処理ではありません。

JSON構文チェックでは、見た目の整形よりエラーの位置が手掛かりになります。このJSON検証は入力の空白や並びを保ったまま行・列を報告し、JSONエラーと、構文上は合法なデータのリスクを分けて示します。

JSONバリデーターで原文を確かめる理由

同じキーの両方を残す

同じオブジェクト内でキーが繰り返されると、後の位置に警告を出し、最初の位置も記録します。"a"と"\u0061"のようなエスケープ後に一致する名前も対象です。別々のオブジェクトにある同名キーは重複扱いにしません。

原文にある同じキーの二つの印が、診断カードへつながっている図。

長いIDを丸めずに確認

構文が正しくても、受け取り側がJavaScriptのNumberを使うと整数の安全範囲を超えることがあります。数字の元の並びを保持し、問題となるトークンの位置だけを示します。引用符を付けたり別の数値へ変えたりしません。

長い数値の並びをそのまま残し、横に黄色の警告を表示した図。

結果を読み違えないための三つの確認

01

構文モードを先に決める

初期値は厳密なJSONです。JSONCでは行コメントとブロックコメントだけを許可し、末尾カンマは許可しません。モードを変更すると古い診断は無効になるので、新しい条件で再実行してください。

02

指摘位置と直前の項目を見る

行と列は1から数えます。位置をクリックすると入力カーソルが移動します。カンマの不足は次の行で初めて見つかる場合があるため、直前の項目も確認します。長い行の抜粋は指摘箇所の周囲に限定されます。

03

最新の結果を保存する

自動チェックは最後の変更から400ms後に実行し、実行ボタンは非表示になります。入力やモードが変わった直後はコピーとダウンロードを無効にします。画面には50件ずつ表示しますが、保存対象は収集済み診断の全件です。

構文とデータのリスクを分けて診断

成功でも警告を見落とさない

JSONバリデーターは構文の成否と警告を別々に扱います。重複キーは相互運用上の注意であり、それだけを構文エラーとは呼びません。エラーがなければ後続の値も引き続き走査します。

指数表記の整数も対象

−9007199254740991から9007199254740991までが整数の安全範囲です。小数点や指数で書かれていても数学的に整数なら判定します。Numberで無限大になる値は別の警告です。任意の小数の精度を保証するものではありません。

元の場所を追えるレポート

診断コード、重要度、JSON Pointer、オフセット、行・列、短い抜粋を記録します。重複キーには初出位置もあります。列とオフセットはUTF-16単位で、CRLFは一つの改行です。パス中のスラッシュとチルダはエスケープされます。

検証の範囲と制限

一度に一つの値
オブジェクトだけでなく文字列や数値もルートにできます。ファイルの取り込み、URL取得、複数ファイル、JSONLの一括検証はありません。JSON SchemaやAPIの必須項目も検証しません。
JSONCでも許可しない記法
シングルクォート、引用符のないキー、末尾カンマ、NaN、Infinityはどちらのモードでもエラーです。先頭BOMや規定外の空白は自動削除しません。閉じていないブロックコメントも失敗します。
最初の構文エラーで停止
欠けた括弧の後を推測して全エラーを列挙することはしません。停止前の警告は読めた範囲だけの結果です。修正して再実行してください。資源制限に達した場合、構文の有効性は未判定と記録します。
入力とレポートの上限
入力は500000 UTF-16単位、深さ100、値50000個、数値トークン1000単位までです。ルートの深さは0です。診断は制限通知を含め1000件まで、パスと抜粋の合計は2000000単位まで収集します。
修正するのは利用者
自動修復、整形、並べ替え、重複削除、数値の文字列化は行いません。出力は短い原文抜粋を含む診断レポートです。修正済みのデータではないため、共有する前に含まれる抜粋を確認してください。

JSONバリデーターについての質問

正しく見えるのに、なぜJSONが無効になるのですか?

見た目がJavaScriptのオブジェクトでも、JSONではキーや文字列にダブルクォートが必要です。末尾カンマ、未閉鎖の括弧、値の後ろの余分な文字も確認してください。エラー位置より前に原因があることもあります。

シングルクォーテーション(')は使えますか?

使えません。文字列とオブジェクトのキーはダブルクォートで囲みます。本ページのJSONCもこの規則を維持します。原文を書き換えた後で再度チェックしてください。

//や/* */でコメントを書けますか?

厳密モードではコメントはエラーです。JSONCを選択すると行コメントとブロックコメントを許可します。ただし末尾カンマやJSON5の追加構文までは許可しません。

無効と表示された場合、問題の場所をどう探せばよいですか?

診断の行・列をクリックしてカーソルを移動し、周囲の抜粋と直前の項目を比較します。JSONバリデーターは解析が続けられなくなった位置を報告するため、原因が前の行にある場合もあります。

一度に複数のファイルを処理できますか?

一つの貼り付け文書を処理する仕様です。ファイルの一括取り込みやJSONLの行ごとの処理はありません。複数のルート値を続けて貼ると、最初の値の後ろに余分な内容があると判定します。

結果に気になる点はありますか?

JSONバリデーターで次のデータを確認

サンプルには重複キーと大きな整数が含まれます。JSONバリデーターでそれぞれの位置を確認し、原文を残したまま修正方針を決められます。