我最近发现了JSON模式07中可用的if-then-else关键字。
我想使用这些关键字根据另一个属性的答案来更改属性的类型。
基本上我想这样做:
"if": {
"properties" : {
"QuestionA": {"enum": ["CorrectAnswer"]}
}
},
"then": {
"QuestionB": //Change type of question B from null to string
}
}
这样做的全部目的是,当一个问题取决于前一个问题的答案是否正确时,那么直到第一个问题被正确提出后,才能回答该问题。
如果我首先将第二个问题的类型设置为null,则无法给出答案。回答完第一个问题后,第二个问题的类型将更改为字符串,并且可以回答第二个问题。
在JSON模式中使用if if else可以实现吗?
答案 0 :(得分:2)
是的
then
关键字值必须是JSON模式本身。
如果if
模式成功验证,则将应用then
模式。
如果存在“ if”,并且实例成功针对 它的子模式,那么如果 实例还可以针对该关键字的子模式成功验证。
https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.6.2