JSON 架构 - 如何在不使用正则表达式的情况下将对象限制为值类型为"布尔值"的特定名称



我想记录来自复选框输入的数据,例如:

{
client 1: false,
client 2: true,
client 3: false,
}

{
dogs: true
cats: true
horses: false
}

我想为这些创建简单的JSON模式,并且更喜欢使用一个不必学习/键入/读取复杂regex的系统。下面的工作非常好,例如1:

"type": "object",
"patternProperties": {
"^Client [1-3]$": {
type: "boolean",
},
},
"additionalProperties": false,

不幸的是,当对象属性不遵循简单的模式时,情况会很复杂,如示例2中所示。有没有一种方法可以严格指定数组中的对象属性,同时指定值类型?我想将对象属性名称仅限于数组。所以我想要这样的伪模式:

"additionalProperties": false,
"propertyNames": ["Client 1", "Client 2", "Client 3"],
"allValuesToBe": "boolean"

(我编了最后一个关键字,但想要这样的东西。(这将接受/拒绝以下内容:

client 1: false, // accept
foobar: true, // reject, bad prop name
client 3: 123, // reject, bad value

additionalProperties不必是布尔值,您可以在那里放置一个普通的模式。因此,只要你在这个对象中的所有属性都遵循相同的准则,你就可以做到:

"propertyNames": { "enum": ["Client 1", "Client 2", "Client 3"] },
"additionalProperties": { "type": "boolean" }

相关内容

  • 没有找到相关文章

最新更新