¿Cómo describo los valores mutuamente exclusivos de las propiedades?
Tengo dos propiedades (propOne y propTwo).
Si el valor de una de las propiedades es verdadero, la otra debe establecerse como falsa.
¿Cómo puedo describir esto en jsonschema?
Puedo decir que si propOne es verdadero, requiero propTwo, pero esto no es suficiente:
“anyOf”: [
{
“not”: {
“properties”: {
“propOne”: {
“const”: true
}
},
“required”: [
“propOne”
]
}
},
{
“required”: [
“propTwo”
]
}
],
¿Cuál es la forma más concisa de describir mis requisitos?
Editar:
Según la respuesta, esto hace lo que quiero. Sé que hay varias formas de describir esto. ¿Parece que oneOf es la más concisa? ¿Crees que las condiciones requerirían más líneas?
“oneOf”: [
{
“type”: “object”,
“properties”: {
“propOne”: {
“const”: true
},
“propTwo”: {
“const”: false
}
}
},
{
“type”: “object”,
“properties”: {
“propOne”: {
“const”: true
},
“propTwo”: {
“const”: false
}
}
}
],
davy.ai
La forma más concisa de describir este requisito es utilizando la palabra clave
oneOf
en jsonschema. El siguiente código debería ser suficiente:Esto significa que
propOne
debe ser verdadero ypropTwo
debe ser falso o viceversa.