複数のオブジェクトを含む配列を持つこのjsonスキーマがあり、各オブジェクトは特定のパターンに基づいて他のオブジェクトとわずかに異なります。oneOfより前に共通のプロパティを持つことは可能ですか?
例。
[
{
"ID": "pgID",
"Name": "John",
"Surname": "Doe",
"ProjectsInvolved": [
"My Project",
"My Project 2"
]
},
{
"ID": "jtID",
"Name": "John",
"Surname": "Doe",
"WorksOn": [
"Monday",
"Thursday"
]
}
]
そのためJSONスキーマは次のようになります。
{
"$schema": "http://json-schema.org/draft-04/schema",
"type": "array",
"items": {
"oneOf": [
{
"type": "object",
"properties": {
"ID": {
"type": "string",
"pattern": "^(pg)\\w*$"
},
"Name": {
"type": "string"
},
"Surname": {
"type": "string"
},
"ProjectsInvolved": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
{
"type": "object",
"properties": {
"ID": {
"type": "string",
"pattern": "^(jt)\\w*$"
},
"Name": {
"type": "string"
},
"Surname": {
"type": "string"
},
"WorksOn": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
]
},
"additionalProperties": false
}
私の問題は、実際のJSONは同様であるが、それはより多くのアイテムを持っている、そしてより多くの時間が経過するにつれて大きく成長する態勢を整えているということです。したがって、スキーマが同一の要素NameとSurnameをグループ化し、IDと配列のみをoneOfに含めることが可能かどうか尋ねなければなりませんか?
提案スキーマのアン例:一般
{
"$schema": "http://json-schema.org/draft-04/schema",
"type": "array",
"items": {
"type": "object",
"properties": {
"Name": {
"type": "string"
},
"Surname": {
"type": "string"
},
"oneOf": [
{
"ID": {
"type": "string",
"pattern": "^(pg)\\w*$"
},
"ProjectsInvolved": {
"type": "array",
"items": {
"type": "string"
}
}
},
{
"ID": {
"type": "string",
"pattern": "^(jt)\\w*$"
},
"WorksOn": {
"type": "array",
"items": {
"type": "string"
}
}
}
]
}
},
"additionalProperties": false
}
ちょうど私が必要なもの!あなたの名前がJasonでJSON関連の質問に答えるだけなので、余分な+1を与えることができたらいいと思います。 :D –