gpt4 book ai didi

JSON Schema oneOf 属性已填充

转载 作者:行者123 更新时间:2023-12-04 00:30:44 41 4
gpt4 key购买 nike

如何设置 JSON Schema 规则以说明必须设置并且需要其中一个属性?

我尝试了各种方法来解决它,例如:

{
"id":"#",
"required":true,
"additionalProperties":true,
"type":"object",
"properties":{
"surname":{
"id":"surname",
"required":true,
"type":"string"
},
"oneOf":[
{
"$ref":"#/definitions/station_id"
},
{
"$ref":"#/definitions/station"
}
]
},
"definitions":{
"station_id":{
"type":"integer"
},
"station":{
"type":"string"
}
}
}

但它从来没有奏效。我需要做的是接受 station_id 是一个整数或 station 是一个字符串名称。

请问有办法吗?

最佳答案

oneOf仅在直接在模式内使用时才特殊。当您使用 oneOfproperties ,那么它就没有特别的意义,所以你实际上最终定义了一个名为 "oneOf" 的属性。反而。

此外 - 这不是使某些东西成为必需的属性定义,而是 required关键词。此关键字是一组必需的属性(不是 bool 值,这是旧语法)。

为了做你想做的事,你做一个 oneOf一个选项有的条款 "station_id"需要,另一个有"station"必需的:

{
"oneOf": [
{"required": ["station"]},
{"required": ["station_id"]}
]
}

如果两者都存在,则数据将无效(因为只有一个 oneOf 条目允许通过)。

关于JSON Schema oneOf 属性已填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21565893/

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