gpt4 book ai didi

jsonschema - 使用额外的必填字段扩展 $ref

转载 作者:行者123 更新时间:2023-12-02 19:47:08 27 4
gpt4 key购买 nike

给定一个名为 location 的架构的一部分,如下所示:

{
type: 'object',
required: [ 'country' ],
additionalProperties: false,
properties: {
country: {
enum: [ 'DE', 'CH', 'AT' ],
},
postalCode: { type: 'string' },
},
};

在我们的大多数用例中,仅给出国家/地区代码即可有效位置。但是,在某些情况下,我们也必须需要邮政编码。

例如,在我们的例子中,公司始终需要邮政编码。当然,我们之前的 location 架构并不强制执行此操作。其他模式需要不强制存在邮政编码的位置对象。这是我们公司的架构:

{
type: 'object',
required: [ 'name', 'location' ],
additionalProperties: false,
properties: {
location: { $ref: 'location' },
name: { type: 'string' },
website: { type: 'string' },
},
};

在 JSON 模式中是否有一种方法可以使用 $ref 并扩展它,以便 company 模式中的 location 属性将自动需要 postalCode ?我们当前的解决方案是基于 location 创建第二个架构,我们只需更改 required 属性,但我希望有更好的方法。

谢谢。

最佳答案

你可以

{
type: 'object',
required: [ 'name', 'location' ],
additionalProperties: false,
properties: {
location: {
allOf: [
{ $ref: 'location' },
{ required: [ 'postalCode' ] }
]
},
name: { type: 'string' },
website: { type: 'string' }
}
}

关于jsonschema - 使用额外的必填字段扩展 $ref,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41958392/

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