使用JSON模式If-Then-Else更改属性类型

时间:2018-11-08 13:19:06

标签: json jsonschema

我最近发现了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可以实现吗?

1 个答案:

答案 0 :(得分:2)

是的

then关键字值必须是JSON模式本身。

如果if模式成功验证,则将应用then模式。

  

如果存在“ if”,并且实例成功针对   它的子模式,那么如果   实例还可以针对该关键字的子模式成功验证。

https://tools.ietf.org/html/draft-handrews-json-schema-validation-01#section-6.6.2