gpt4 book ai didi

javascript - JSON-Schema Draft-04 - OneOf 需要

转载 作者:行者123 更新时间:2023-12-03 05:04:01 26 4
gpt4 key购买 nike

我有一个 API 路由,可以在处理逻辑之前验证 json 模式。

此路由可以根据发送的 JSON 创建 2 种类型的“文章”。我使用 OneOf 检查架构是否对应于这两种类型之一。

{
"type": "object",
"oneOf": [{
"properties": {
"name": {
"type": "string",
},
"description": {
"type": "string"
}
}
}, {
"properties": {
"author": {
"type": "string",
},
"editor": {
"type": "string"
}
},
"required":["author", "editor"]
}]
}
<小时/>
  • 因此第一种类型可以有名称和描述,但此字段不是必需的。

  • 第二种类型需要有作者编辑

如果发送的 JSON 架构仅包含 author 字段,会发生什么情况? (编辑器为空)

感谢您的回复。

最佳答案

根据oneOf关键字的定义

To validate against oneOf, the given data must be valid against exactly one of the given subschemas.

按照定义模式的方式,仅包含“author”属性的对象将始终有效,因为第一个 oneOf 定义可以翻译为:

具有任何属性集的对象都是有效的,但如果该对象包含“名称”和“描述”属性,则它们必须都是字符串类型。

如您所见,根据此定义,仅包含“author”属性的对象是完全有效的。

实际上,如果给定对象包含“名称”和/或“描述”属性并且它们不是字符串,则任何给定对象都只会针对第二个定义(作者、编辑者)进行验证。

这是学习 JSON Schema 的一个很好的引用 https://spacetelescope.github.io/understanding-json-schema/

这是一个很好的 JSON 模式验证器 http://www.jsonschemavalidator.net

关于javascript - JSON-Schema Draft-04 - OneOf 需要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42090035/

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