JSONスキーマのスクリプト化についてのチュートリアル


  1. 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"]
}
  1. 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))
  1. 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スキーマのスクリプト化を学んでください。これにより、データの構造や制約を効果的に定義し、バリデーションやドキュメント生成を自動化することができます。