我试图用条件来定义一个JSON模式。我建立了一个MVE,它已经不像我期望的那样起作用了。
我要验证的对象是:
{
"keiner": false,
"abdominal": true,
"zervikal": false
}条件规则很简单。当"keiner“为真时,其他两个值都必须是假的。如果"keiner“是假的,那么另外两个中至少有一个必须是真的。
我编写了这个模式:
{
"type": "object",
"properties": {
"keiner": { "type": "boolean" },
"abdominal": { "type": "boolean" }
},
"if": {
"properties": {
"keiner": { "const": true }
}
},
"then": {
"properties" : {
"abdominal": { "const": false },
"zervikal": {"const": false }
}
},
"else": {
"properties": {
"anyOf": [
{ "abdominal": { "const": true } },
{ "zervikal": { "const" : true } }
]
}
}
}但是Newtonsoft在线验证程序提供了错误消息。
读取“任意”的值时遇到的意外令牌。期望的StartObject布尔得到StartArray。
从“任何”开始的那一行。这让我感到困惑,因为我可以找到的所有示例都显示为anyOf,后面跟着一系列选项。
那我做错什么了?为什么我不能在startArray之后使用anyOf,以及如何正确地编写模式?
发布于 2019-09-12 13:27:31
我想这就是您要寻找的模式:

https://stackoverflow.com/questions/57907395
复制相似问题