gpt4 book ai didi

python - JSON 架构 : validate a number-or-null value

转载 作者:IT老高 更新时间:2023-10-28 20:49:37 25 4
gpt4 key购买 nike

有没有办法让 JSON 架构属性成为数字或 null

我正在构建一个包含 heading 属性的 API。可以是介于 0(含)和 360(不含)之间的数字,也可以是 null,因此以下输入都可以:

{"heading": 5}
{"heading": 0}
{"heading": null}
{"heading": 12}
{"heading": 120}
{"heading": null}

并且以下输入是错误的:

{"heading": 360}
{"heading": 360.1}
{"heading": -5}
{"heading": false}
{"heading": "X"}
{"heading": 1200}
{"heading": false}

附录:

anyOf 显然是正确的答案。为了清楚起见,添加完整的架构。

架构

{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"additionalProperties": false,
"properties": {
"heading": {
"anyOf": [
{"type": "number"},
{"type": "null"}
]
}
}
}

最佳答案

在草案 04 中,您将使用 anyOf 指令:

{
"anyOf": [
{
"type": "number",
"minimum": 0,
"maximum": 360,
"exclusiveMaximum": true
},
{
"type": "null"
}
]
}

您也可以按照 Adam 的建议使用 "type": ["number", "null"],但我认为 anyOf 更简洁(只要您使用 draft-04 实现),并且将最小和最大声明联系起来明确的数字。

免责声明:我对 python 实现一无所知,我的答案是关于 json 架构。

关于python - JSON 架构 : validate a number-or-null value,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22565005/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com