- JSONスキーマの作成: まず、JSONスキーマを作成します。スキーマは、JSONデータの構造とバリデーションルールを定義します。例えば、以下のようなスキーマを考えてみましょう。
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name": {
"type": "string"
},
"age": {
"type": "integer",
"minimum": 18
},
"email": {
"type": "string",
"format": "email"
}
},
"required": ["name", "age"]
}
- JSONデータのバリデーション: 作成したJSONスキーマを使用して、JSONデータのバリデーションを行います。以下のコード例では、Pythonのjsonschemaライブラリを使用しています。
import json
from jsonschema import validate
schema = {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "integer", "minimum": 18},
"email": {"type": "string", "format": "email"}
},
"required": ["name", "age"]
}
data = {
"name": "John Doe",
"age": 25,
"email": "[email protected]"
}
try:
validate(instance=data, schema=schema)
print("Valid JSON data")
except Exception as e:
print("Invalid JSON data:", str(e))
- JSONスキーマのドキュメント生成: スキーマをドキュメント化することで、他の開発者がスキーマを理解しやすくなります。以下のコード例では、Pythonのjsonschemaライブラリを使用して、スキーマのドキュメントを生成しています。
import json
from jsonschema import Draft7Validator
schema = {
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name": {"type": "string"},
"age": {"type": "integer", "minimum": 18},
"email": {"type": "string", "format": "email"}
},
"required": ["name", "age"]
}
validator = Draft7Validator(schema)
doc = validator.to_json(indent=2)
print(doc)
以上の手順とコード例を参考にして、JSONスキーマのスクリプト化を学んでください。これにより、データの構造や制約を効果的に定義し、バリデーションやドキュメント生成を自動化することができます。