どのように検証する JSON:完全ガイドと例
JSON(JavaScript オブジェクト表示法)は现代 Web API、設定ファイルとデータ交換の基石。しかし無効の JSON できるをもたらすアプリケーション崩溃、API 統合する失敗,かつ引き起こす数時間のデバッグ困扰。このガイドする带あなた理解する検証する JSON 所需の一切知识,から基本構文確認するまで使用真实例の高级 Schema 検証する。
JSON検証が重要な理由
無効の JSON は Web アプリケーション中最も一般的の間違いソースの一つ。一つの放誤位置の逗号、一つの未加引号の键または一つの尾随逗号すべてかもしれないをもたらす JSON.parse() 抛出 SyntaxError,からそしてさせる全体のデータパイプライン崩溃。検証するできるでこれらの間違い传播まで系统かつ引き起こすダウンストリーム故障前におよび早捕获それ们。
を除いて構文正しく性以外,検証するまだ確保する JSON データ適合する预期の结构。API かもしれない戻る有効の JSON,しかし缺少必需字段、データタイプ間違いまたは值超出可受け取る範囲。Schema 検証する解决たこれらの结构性问题。
JSON構文ルール
で深く理解する検証ツール前に,理解するさせる JSON 有効の规すなわち非常に重要です。JSON を持つ由 RFC 8259 定義するの严格構文,たとえ〜でも単个字符违规もできるさせる全体のドキュメント無効。
文字列はダブルクォートを使用
すべての文字列值とオブジェクト键必須用双引号括起来。単引号いいえ有効の JSON 文字列分隔符,これはから JavaScript 转来の開発者常犯の間違い。
// Invalid - single quotes
{'name': 'Alice', 'age': 30}
// Valid - double quotes
{"name": "Alice", "age": 30}オブジェクトキーはクォート必須
と JavaScript オブジェクト字面量異なる,JSON 要件すべてのオブジェクト键すべて用双引号括起来。未加引号の键は構文間違い。
// Invalid - unquoted keys
{name: "Alice", age: 30}
// Valid - quoted keys
{"name": "Alice", "age": 30}不許可する尾随逗号
JSON 不許可するでオブジェクトまたは配列の最後に一项後あり逗号。これは另一つの常见間違い,特にはで手动編集する JSON 时。
// Invalid - trailing comma
{
"name": "Alice",
"age": 30,
}
// Valid - no trailing comma
{
"name": "Alice",
"age": 30
}コメント非対応
JSON コメント非対応。// 単行コメントと /* */ 多行コメントで JSON 中すべて無効。もしあなた必要とするドキュメント説明,请使用単独のファイルまたは JSONC などフォーマット。
よくあるJSON検証エラー
理解する最も一般的の間違いに役立つあなた高速発見すると修正それ们。もって下はあなた最も常遇までの間違い:
- 予期しないトークン:通常由単引号、未加引号の键または尾随逗号引き起こす。間違いメッセージを含む解析する失敗の位置。
- JSON入力の予期しない終了:JSON 文字列不完全またはのために空。これ通常发生でネットワークリクエストする戻る空対応时。
- 予期しない非空白文字:主 JSON 值後にの额外内容,例えば未包裹で配列中の第二个オブジェクト。
- 無効な数値:带あり前导零(0 本身除外)の数値、16進数表示法または NaN / Infinity 值いいえ有効の JSON。
JavaScript でのJSON検証
JavaScript でのJSON検証 最もシンプルの方法はする JSON.parse() 包装で try-catch 块中。もし JSON 無効,该方法できる抛出 SyntaxError。
function validateJSON(jsonString) {
try {
JSON.parse(jsonString);
return { valid: true };
} catch (error) {
return {
valid: false,
error: error.message
};
}
}
const result = validateJSON('{"name": "Alice"}');
console.log(result);
// { valid: true }
const badResult = validateJSON("{'name': 'Alice'}");
console.log(badResult);
// { valid: false, error: "Unexpected token '..." }Python でのJSON検証
Python 提供するた json モジュール,其中を含むに使用される解析する JSON 文字列の json.loads()。と JavaScript 類似して,無効の JSON できる引发带あり詳細位置情報の json.JSONDecodeError。
import json
def validate_json(json_string):
try:
json.loads(json_string)
return {"valid": True}
except json.JSONDecodeError as e:
return {
"valid": False,
"error": str(e),
"line": e.lineno,
"column": e.colno
}
result = validate_json('{"name": "Alice"}')
print(result)
# {'valid': True}JSON Schema 検証
構文検証するだけできる告诉あなた JSON はいいえフォーマット正しく。JSON Schema させるあなた定義する预期の结构かつに基づいてそれ検証するデータ。Schema 指定た必需字段、データタイプ、值範囲、文字列パターンと嵌套オブジェクト结构。
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"required": ["name", "email"],
"properties": {
"name": { "type": "string", "minLength": 1 },
"email": { "type": "string", "format": "email" },
"age": { "type": "integer", "minimum": 0 }
}
}ストリーム行の JSON Schema バリデーターを含む JavaScript の Ajv、Python の jsonschema と Java の json-schema-validator。これらのライブラリに基づいてあなたの Schema 検証する JSON データ,かつのために各违规生成詳細の間違いメッセージ。
オンラインJSON検証ツール
時にあなた必要とするで不编写コードの情况下高速確認する JSON ドキュメント时,オンライン検証する器は最速の選択する。それ们提供する带あり間違いハイライトすると行号の即時フィードバック。
JSON検証のベストプラクティス
- 早期に検証:で系统边界(如 API エンドポイントとファイルインポートする函数)確認する JSON,でデータ入入ビジネスロジック前に。
- Schema検証を使用:で構文以外,使用 JSON Schema 検証データ構造,もって捕获缺失字段、間違いタイプと超出範囲の值。
- 明確なエラーメッセージを提供:時に検証する失敗时,を含む字段路径、预期タイプと实际值,もってヘルプ用户高速修正问题。
- クライアントとサーバーの両方で検証:クライアント検証する提供する即時フィードバック,そしてサーバー端検証する確保する安全性とデータ完全性。
- CI/CD での検証自動化:使用 ajv-cli または jsonschema などツールで構築するパイプライン中検証する JSON 固定ファイルと設定ファイル。
- 検証エラーの記録:記録する带ありコンテキストの検証する失敗,もって识别パターンかつ修正データ生产者中の根本理由。
準備はいいですか検証するあなたの JSON データましたか?無料のオンライン JSONバリデーター,提供する即時間違い検出と詳細フィードバック。
今すぐJSONを検証よくある質問
とは JSON検証?
JSON検証は確認する JSON ドキュメントはいいえ適合する正しく構文规すなわちならびに可选にはいいえ適合する已定義する Schema のたことがある程。構文検証する確保する JSON フォーマット正しく,そして Schema 検証する確保するデータ構造マッチする预期のタイプ、必需字段と值制約。
最も一般的の JSON 間違いありどの?
最も一般的の JSON 間違いを含む:最後に一项後の尾随逗号、使用単引号そして非双引号、未加引号のオブジェクト键、コメント(JSON 中不許可する)ならびに undefined または NaN 值。これらの間違いできるをもたらす JSON.parse() 抛出 SyntaxError。
どのようにJavaScript でのJSON検証?
使用包装で try-catch 块中の JSON.parse()。もし JSON 無効,JSON.parse() できる抛出あなたできる捕获と処理するの SyntaxError。に対して Schema 検証する,使用実装する JSON Schema 検証の Ajv などライブラリ。
とは JSON Schema?
JSON Schema は一種の許可するあなた注解と検証する JSON ドキュメントの词汇表。それ定義するた预期の结构、タイプ、必需字段、值範囲、文字列パターンと嵌套オブジェクト结构。あなたできる使用それで基本構文正しく性以外検証する JSON データはいいえ適合する特定フォーマット。
できるオンライン検証する JSON か?
はい,のような ToolHub JSONバリデーターこれ样のオンラインJSON検証ツールできるさせるあなた貼り付ける JSON データかつ直ちに查看其はいいえ有効,かつ提供する表示する間違い发生確かに切行と列の詳細間違いメッセージ。