我想要通过JSON结构的值之一的依赖关系更改JSON模式。例如,如果{"foo":1}
在架构中也包含{"fooBar":"number"}
,则会生成{"foo":"number", "fooBar":"number"}
,但如果{"foo":2}
改为包含{"fooBar2":"bool", "fooBar3":"string"}
,则会生成{"foo":1, "fooBar2":"bool", "fooBar3":"string"}
。这可能。
我知道如何包含一个键更改架构(来自here的代码示例),但我找不到任何关于如何使用值完成此操作的示例。如果这是可能的话。
{
"type": "object",
"properties": {
"name": { "type": "string" },
"credit_card": { "type": "number" },
"billing_address": { "type": "string" }
},
"required": ["name"],
"dependencies": {
"credit_card": ["billing_address"]
}
}
答案 0 :(得分:2)
可以做到,但有点复杂。以下是一般模式。
{
"type": "object",
"anyOf": [
{
"properties": {
"foo": { "enum": [1] },
"fooBar": { "type": "number" }
}
},
{
"properties": {
"foo": { "enum": [2] },
"fooBar2": { "type": "boolean" },
"fooBar3": { "type": "string" }
}
}
]
}