JSONバリデーター
あなたのJSONがRFC 8259に対して構文的に有効かどうかを確認します。行と列の番号を含む正確なエラーメッセージを取得して、問題を迅速に修正します。
配列の最後の要素の後の末尾のカンマは、最も一般的なJSONエラーです - そして、ミニファイされた出力では目には見えません。StackOverflowの2023年開発者調査分析によると、JSON解析エラーはAPIデバッグ時間の約15%を占めています。このバリデーターは、あなたのブラウザ内でそれとRFC 8259の他のすべての違反をキャッチします。あなたのJSONを貼り付けて、即座に結果を得てください: 有効または無効、問題の正確な行と列を含めて。何もアップロードされません。アカウントは必要ありません。
JSONを検証する方法
- 入力ボックスにJSONを貼り付けるか、入力します。
- バリデーターがリアルタイムで構文をチェックするか、検証をクリックして完全なレポートを取得します。
- 有効な場合、緑のインジケーターが構造を確認し、トップレベルのタイプの要約を表示します。
- 無効な場合、エラーパネルが正確な行、列、および問題の平易な説明を表示します。
- 指摘された問題を修正し、クリーンな結果が得られるまで再検証します。
チェックされる内容
構造ルール
JSONは、トップレベルでオブジェクト({})または配列([])のいずれかで始まる必要がありますが、RFC 8259はプリミティブ(文字列、数値、ブーリアン、null)をトップレベルの値としても許可します。波括弧と角括弧はバランスが取れており、適切にネストされている必要があります。カンマは要素を区切る必要がありますが、最後の要素の後に現れてはいけません - 末尾のカンマは最も一般的なJSONエラーです。各オブジェクトキーはダブルクォートの文字列でなければなりません。
値のタイプ
JSONは6つの値のタイプを定義します: 文字列(ダブルクォート、特定のエスケープシーケンスを含む)、数値(整数と小数、先頭のゼロなし)、ブーリアン(trueとfalse、小文字のみ)、null(小文字)、オブジェクト、および配列。undefined、NaN、Infinity、および関数式などのJavaScript固有の値は有効なJSONではなく、検証に失敗します。
RFC 8259準拠
RFC 8259(2017年12月発行、RFC 4627およびRFC 7159を置き換える)は、JSONの現在のIETF標準です。これはUTF-8エンコーディングを指定し、重複するオブジェクトキーを禁止し、文字列値のための正確なエスケープシーケンスを定義します。このバリデーターは、すべてのパーサーとプログラミング言語での最大の互換性のために厳格なRFC 8259ルールを強制します。
例
無効な入力(末尾のカンマ)
{
"name": "Alice",
"roles": ["admin", "editor",]
}
バリデーターエラー
行3、列33のエラー: 予期しないトークン ']'
末尾のカンマはJSON配列では許可されていません(RFC 8259 §5)。
一般的な構文エラー
- 末尾のカンマ -
{"a": 1,}- 閉じ括弧または閉じ波括弧の前の最後のカンマを削除します - シングルクォートの文字列 -
{'key': 'value'}- ダブルクォートに変更します - 引用されていないキー -
{key: "value"}- キーをダブルクォートで囲みます - JavaScriptのコメント -
// commentまたは/* comment */- JSONにはコメント構文がありません; それらを削除します - 不正確なブーリアン/ nullの大文字小文字 -
True、False、NULLは無効です;true、false、nullを使用します
検証とフォーマットの違い
検証はJSONが構文的に正しいかどうかをチェックします - 特定のエラー詳細とともに合格または不合格となります。フォーマットは可読性のために空白を追加するだけで、正しさを検証するものではありません。無効なJSONをフォーマットしようとすると失敗します。なぜなら、フォーマッターは最初にJSONを解析する必要があるからです。最初に検証し、その後にフォーマットしてください。
JSONが検証に合格すると、JSONフォーマッターが可読性のためにインデントし、JSONミニファイアが本番用に圧縮します。URLに埋め込まれたJSONの場合は、検証する前にURLデコーダーでデコードしてください。
よくある質問
JSONの検証とフォーマットの違いは何ですか?
バリデーションは、あなたのJSONがRFC 8259に従って構文的に正しいかどうかを確認します。フォーマットは可読性のために空白を追加するだけで、正しさを検証するものではありません。無効なJSONをフォーマットしようとすると、フォーマッターも失敗します。最初にJSONを解析する必要があるからです。フォーマットする前に検証してください。
なぜJavaScriptは私のJSONを受け入れますが、バリデーターは拒否するのですか?
一部のJavaScript環境は、コメント、シングルクォートの文字列、末尾のカンマを許可する緩やかなJSONのスーパーセット(JSON5やHJSONなど)を受け入れます。このバリデーターは、すべての言語とランタイムでJSONが機能することを保証するために、厳格なRFC 8259に対してテストします。使用ケースがJavaScriptのみの場合は、JSON5.parse()をjson5ライブラリとともに検討してください。
このツールでJSONスキーマドキュメントを検証できますか?
このツールはJSON構文のみを検証し、JSONスキーマの意味論は検証しません。JSONスキーマドキュメント自体は有効なJSONであるため、構文検証は機能します。データオブジェクトがJSONスキーマ定義に準拠しているかどうかを検証するには、ajvのような専用のJSONスキーマバリデーターが必要です。
ここで検証する際、私のデータはプライベートですか?
完全に可能です。バリデーションは、ブラウザ内でネイティブのJSON.parse関数を使用してクライアントサイドで実行されます。データはサーバーに送信されず、ログに記録されず、保存されることもありません。APIの資格情報、個人情報、内部ビジネスデータを含むペイロードを安全に検証できます。
最も一般的なJSON検証エラーは何ですか?
頻度の順に: (1) 最後の要素の後の末尾のカンマ - [1, 2, 3,]; (2) ダブルクォートの代わりにシングルクォートの文字列; (3) 文字列内のエスケープされていないバックスラッシュまたは制御文字; (4) JavaScriptのコメント; (5) True/False/Nullの大文字ではなく、true/false/nullを使用します。