ByteCompress

JSONバリデーター

あなたのJSONがRFC 8259に対して構文的に有効かどうかを確認します。行と列の番号を含む正確なエラーメッセージを取得して、問題を迅速に修正します。

0 chars
FreeClient-sideNo signup

配列の最後の要素の後の末尾のカンマは、最も一般的なJSONエラーです - そして、ミニファイされた出力では目には見えません。StackOverflowの2023年開発者調査分析によると、JSON解析エラーはAPIデバッグ時間の約15%を占めています。このバリデーターは、あなたのブラウザ内でそれとRFC 8259の他のすべての違反をキャッチします。あなたのJSONを貼り付けて、即座に結果を得てください: 有効または無効、問題の正確な行と列を含めて。何もアップロードされません。アカウントは必要ありません。

JSONを検証する方法

  1. 入力ボックスにJSONを貼り付けるか、入力します。
  2. バリデーターがリアルタイムで構文をチェックするか、検証をクリックして完全なレポートを取得します。
  3. 有効な場合、緑のインジケーターが構造を確認し、トップレベルのタイプの要約を表示します。
  4. 無効な場合、エラーパネルが正確な行、列、および問題の平易な説明を表示します。
  5. 指摘された問題を修正し、クリーンな結果が得られるまで再検証します。

チェックされる内容

構造ルール

JSONは、トップレベルでオブジェクト({})または配列([])のいずれかで始まる必要がありますが、RFC 8259はプリミティブ(文字列、数値、ブーリアン、null)をトップレベルの値としても許可します。波括弧と角括弧はバランスが取れており、適切にネストされている必要があります。カンマは要素を区切る必要がありますが、最後の要素の後に現れてはいけません - 末尾のカンマは最も一般的なJSONエラーです。各オブジェクトキーはダブルクォートの文字列でなければなりません。

値のタイプ

JSONは6つの値のタイプを定義します: 文字列(ダブルクォート、特定のエスケープシーケンスを含む)、数値(整数と小数、先頭のゼロなし)、ブーリアン(truefalse、小文字のみ)、null(小文字)、オブジェクト、および配列。undefinedNaNInfinity、および関数式などの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の大文字小文字 - TrueFalseNULLは無効です; truefalsenullを使用します

検証とフォーマットの違い

検証は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を使用します。