0

我希望能够编写一个 jsonschema 片段,例如:

{
   "type":"array",
   "items":{
      "type":"number",
      "lag":2
   }
}

它在一个数值全为 2 的数字数组上成功:例如

[ 1, 3, 5, 7 ]

我能够将自定义格式描述为从列表到布尔的函数。

这可能吗?

4

3 回答 3

1

不,那里没有。您可以在此处找到可用的数组验证: https ://json-schema.org/draft/2019-09/json-schema-validation.html#rfc.section.6.4

您可以指定一个数字必须是 x 的倍数: https ://json-schema.org/understanding-json-schema/reference/numeric.html#multiples 但当然这只是您想要实现的一部分。

于 2020-06-30T06:52:24.230 回答
0

如果你的字面意思是奇数,你可以这样做:

{
   "type":"array",
   "items":{
      "allOf": [{"type":"number"}, {"not": {"multipleOf": 2}}],
   }
}
于 2020-07-06T16:35:43.337 回答
0

这很简单。我定义了一个自定义验证器https://python-jsonschema.readthedocs.io/en/stable/creating/。不幸的是,我必须在验证器中验证该实例是一个数字数组。

于 2020-07-09T16:49:04.827 回答