使い方
- JSON を貼り付けるか、ファイルを開くか、サンプルをお試しください。
- リアルタイムのレポートを確認します。問題を選ぶと該当箇所に移動します。
- 入力を修正して、有効な JSON をコピーまたはダウンロードします。
次に何をすべきかがわかる構文チェック
JSON 検証は、このテキストを 1 つの JSON 値として読み取れるか、という具体的な問いに答えます。区切り記号の欠落、不完全な値、無効なエスケープなど、構文上の問題をレポートで示します。
警告は、プロパティ名の重複や JavaScript の安全な範囲を超える整数など、読み取る側によって解釈が変わり得るデータを示します。警告があっても、構文が正しい JSON が無効になるわけではありません。
有効な JSON とは?
文書は、オブジェクト、配列、文字列、数値、真偽値、null のいずれか 1 つの JSON 値を含みます。プロパティ名と文字列の値には二重引用符が必要です。オブジェクトや配列内の値はカンマで区切り、最後の要素の後にカンマは付けません。
JavaScript の式は JSON ではありません。コメント、undefined、NaN、Infinity、単一引用符、引用符のないプロパティ名は受け付けません。
{
"name": "Ada",
"active": true,
}{
"name": "Ada",
"active": true
}閉じ波括弧の前にある最後のカンマを削除します。バリデーターは問題の場所を示し、修正方法は自分で決めます。
エラーと警告は分けて考える
エラーがあると、利用可能な結果を出せません。位置を選ぶと入力の該当箇所にフォーカスします。まず最初のエラーから修正してください。引用符が 1 つ欠けるだけで、その後に複数の診断が出ることがあります。
JSON の文法は名前の重複を許しますが、どの値を使うかは読み取る側によって異なります。DevToolsy はすべての出現箇所を保持し、警告を表示します。数値範囲の警告も同様に、構文エラーではなく、読み取る側の制約に注意を促すものです。
構文検証とスキーマ検証
構文が正しくても、API のペイロードに正しいフィールドや値が含まれているとは限りません。スキーマは必須プロパティ、値の型などの制約を記述できます。このバリデーターは構文と上記の警告を確認するもので、JSON Schema やアプリケーションのルールは評価しません。
UTF-8 入力は最大 5 MiB、出力は最大 20 MiB、ネストは最大 128 階層、走査するトークンは最大 250,000 個、実行時間は 1 回につき最大 10 秒です。大きな文書には、より高性能なデバイスが必要になる場合があります。
よくある質問
検証は自動で実行されますか?
はい。入力が少し止まるとレポートが更新されます。「自動検証」を無効にすると、「JSON を検証」または Ctrl/⌘ + Enter で手動実行できます。入力内容は変わりません。
有効な JSON はオブジェクトである必要がありますか?
いいえ。最上位が配列、文字列、数値、true、false、null でも有効な JSON 文書です。エディターが空の状態は有効ではありません。
キーの重複は構文エラーですか?
JSON の文法では名前の重複を許しますが、ソフトウェアによって異なる値を選んだり、文書を拒否したりすることがあります。このツールでは警告として表示し、エクスポートにもそのまま残します。
JSON Schema をチェックしますか?
いいえ。このツールは、厳密な JSON 構文と相互運用上の注意点を確認します。必須フィールド、JSON Schema、アプリケーションの業務ルールはチェックしません。
JSON を自動修正しますか?
いいえ。診断は確認すべき位置を示し、選ぶと入力の該当箇所にフォーカスします。「エラーのあるサンプル」を使えば、自分のデータを変更せずにすぐ試せます。
1 つの間違いで複数のエラーが出るのはなぜですか?
引用符、カンマ、閉じ括弧の欠落は、その後の解析にも影響する場合があります。最初のエラーを修正し、レポートの更新を待ってから、残りの項目を確認してください。
検証後に何をエクスポートできますか?
有効な JSON なら、チェック済みの入力をコピーまたはダウンロードできます。元の空白とトークンは保持しますが、先頭のバイトオーダーマークは警告とともに削除します。無効な入力を検証済みデータとしてエクスポートすることはできません。
JSON がデバイスの外に送られますか?
いいえ。貼り付けたテキストとローカルファイルはブラウザー内で処理します。DevToolsy は文書をアップロードせず、文書の履歴も保存しません。必要な結果は、ページを離れる前にダウンロードしてください。