gpt4 book ai didi

JSON 模式 - 如何使用 oneOf

转载 作者:行者123 更新时间:2023-12-01 16:23:14 27 4
gpt4 key购买 nike

以下是根据 http://jsonlint.com/ 的有效 JSON 模式和 http://jsonschemalint.com/draft4/# .

{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"required": ["results"],
"additionalProperties": false,
"properties": {
"results": {
"type": "string",
"oneOf": [
{ "result": "1" },
{ "result": "2" },
{ "result": "3" },
{ "result": "4" }
]
}
}
}

以下 JSON 在针对上述架构进行验证时报告错误 ( results is the wrong type ):
{
"results" : {
"result": "1"
}
}

谁能建议我如何解决这个错误?

最佳答案

在这种情况下,您想要的是 enum而不是 oneOf .以下是您定义架构的方式。

{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"required": ["results"],
"additionalProperties": false,
"properties": {
"results": {
"type": "object",
"properties": {
"result": {
"type": "string",
"enum": ["1", "2", "3", "4"]
}
}
}
}
}

但是,问题是如何使用 oneOf适本地。 oneOf关键字应该是模式数组,而不是您在示例中使用的值。 oneOf 中的一种且唯一一种模式必须针对 oneOf 的数据进行验证子句来验证。我必须稍微修改您的示例以说明如何使用 oneOf .此示例允许 result是一个字符串或一个整数。
{
"$schema": "http://json-schema.org/draft-04/schema#",
"type": "object",
"required": ["results"],
"additionalProperties": false,
"properties": {
"results": {
"type": "object",
"properties": {
"result": {
"oneOf": [
{
"type": "string",
"enum": ["1", "2", "3", "4"]
},
{
"type": "integer",
"minimum": 1,
"maximum": 4
}
]
}
}
}
}
}

关于JSON 模式 - 如何使用 oneOf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30298740/

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