JSONスキーマの検証に関するヘルプをリクエストしています(以下はJSONとスキーマのサンプルです)。私は "ppd"スキーマルールを具体的に指定する方法を考え出しています。 "cfg"は文字列、文字列のマップで、Enum定義、つまり "inputDateTimeFormat"の値によってこのマップのキーと値のエントリをさらに制限する必要があります。 keyが "inputDateTimeFormat"ならばエンコードするべきであるので、許可される値は日付の時刻形式に一致するパターンであり、同様にkeyが "valuemapping"の場合、許容される値はパターンマッチングk = v(以下の例)です。JSONスキーマの検証とEnum制約のある文字列のマップ
これを達成する方法を教えてください。
JSONサンプル -
{
"sm": [
{
"mid": "id-1",
"ppd": [
{
"name": "cc-1",
"cfg": {
"columns": "v-1",
"valueMapping": "B=01;S=02"
}
},
{
"name": "cc-2",
"cfg": {
"columns": "v-2",
"inputDateTimeFormat": "ddMMMyyyy_HH:mm:ss.SSSSSS",
"outputDateTimeFormat": "yyyy-MM-dd'T'HH:mm:Ss.SSSZ"
}
},
{
"name": "cc-3",
"cfg": {
"columns": "v-3;v-4",
"markers": "d=01"
}
}
]
}
]
}
JSONスキーマ:
{
"type": "object",
"$schema": "http://json-schema.org/draft-06/schema",
"id": "source-mappings-schema",
"required": true,
"properties": {
"sm": {
"type": "array",
"id": "source-mappings-schema/sm",
"required": true,
"items": {
"type": "object",
"id": "source-mappings-schema/sm/0",
"required": true,
"properties": {
"mappingId": {
"type": "string",
"id": "source-mappings-schema/sm/0/mappingId",
"required": true
},
"ppd": {
"type": "array",
"id": "source-mappings-schema/sm/0/ppd",
"required": true,
"items": {
"type": "object",
"id": "source-mappings-schema/sm/0/ppd/0",
"required": true,
"properties": {
"name": {
"type": "string",
"id": "source-mappings-schema/sm/0/ppd/0/name",
"required": true
},
"cfg": {
"type": "array",
"id": "source-mappings-schema/sm/0/ppd/0/cfg",
"required": true,
"items": {
"type": "string"
}
}
}
}
}
}
}
}
}
}