我希望能够编写jsonschema片段,例如:
{
"type":"array",
"items":{
"type":"number",
"lag":2
}
}
在一个数字数组(其值全为2)上成功:例如
[ 1, 3, 5, 7 ]
我能够将自定义格式描述为从列表到bool的函数。
这可能吗?
答案 0 :(得分: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 但这当然只是您要实现的目标的一部分。
答案 1 :(得分:0)
如果您的字面意思是奇数,则可以执行以下操作:
{
"type":"array",
"items":{
"allOf": [{"type":"number"}, {"not": {"multipleOf": 2}}],
}
}
答案 2 :(得分:0)
这很简单。我定义了一个自定义验证器https://python-jsonschema.readthedocs.io/en/stable/creating/。 不幸的是,我必须在验证器内部进行验证,以确保实例是一个数字数组。