- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在下面的架构中,我需要 items_list
, price
和 variance
作为必需的键。条件是 price
和 variance
可能为空,也可能不为空,但都不能为空。
虽然我能够实现它,但我很期待是否有更短的方法来做到这一点。另外,我不确定该放在哪里 required
和 additionalProperties
键。
任何帮助是极大的赞赏。
{
"type": "object",
"properties": {
"items_list": {
"type": "array",
"items": {
"type": "string"
}
},
},
"anyOf": [
{
"properties": {
"price": {
"type": "number",
"minimum": 0,
},
"variance": {
"type": [
"number",
"null"
],
"minimum": 0,
},
},
},
{
"properties": {
"price": {
"type": [
"number",
"null"
],
"minimum": 0,
},
"variance": {
"type": "number",
"minimum": 0,
},
},
},
],
# "required": [
# "items_list",
# "price",
# "variance",
# ],
# "additionalProperties": False,
}
最佳答案
要回答“可以更短吗?”这个问题,答案是肯定的。一般的经验法则是永远不要在 bool 逻辑关键字中定义任何内容。仅使用 bool 逻辑关键字来添加复合约束。我使用术语“复合约束”来表示基于模式中多个值的约束。在这种情况下,复合约束是价格和方差不能都为空。
{
"type": "object",
"properties": {
"items_list": {
"type": "array",
"items": { "type": "string" }
},
"price": { "type": ["number", "null"], "minimum": 0 },
"variance": { "type": ["number", "null" ], "minimum": 0 }
},
"required": ["items_list", "price", "variance"],
"additionalProperties": false,
"allOf": [{ "$ref": "#/definitions/both-price-and-variance-cannot-be-null" }],
"definitions": {
"both-price-and-variance-cannot-be-null": {
"not": {
"properties": {
"price": { "type": "null" },
"variance": { "type": "null" }
},
"required": ["price", "variance"]
}
}
}
}
additionalProperties
正常工作,它也更容易阅读。它甚至符合您对问题的描述,“价格和方差可能为也可能不为空”(
properties
)但“两者都不能为空”(
not
(复合约束))。您可以通过内联定义使其更短,但我将其包含在内是为了展示该技术的表现力,同时仍然比原始模式更短。
关于jsonschema - 如何在不同的属性类型上使用 anyOf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61363906/
在下面的架构中,我需要 items_list , price和 variance作为必需的键。条件是 price和 variance可能为空,也可能不为空,但都不能为空。 虽然我能够实现它,但我很期待
Swagger 2.0 版中的 anyof 相当于什么,请告诉我如何更新我的 json 文件,因为我想将我的文档从 swagger 1.0 升级到 2.0。 感谢您的帮助。 最佳答案 我认为没有,感觉
我很难弄清楚如何根据其中一个属性的值来验证一组对象。所以我有一个 JSON 对象,如: { "items": [ { "name": "foo",
我需要一些有关 CompletableFuture 中的 anyOf javadoc 中使用的文献的帮助。 static CompletableFuture anyOf(CompletableFutu
我需要一些有关 CompletableFuture 中的 anyOf javadoc 中使用的文献的帮助。 static CompletableFuture anyOf(CompletableFutu
来自 javadoc, AllOf() If any of the given CompletableFutures complete exceptionally, then the returned
我在参与者和抽象实体之间有一对一的关系。我想查询有摘要的参与者。所以我创建以下查询: @NamedQuery(name = Participant.FIND_ABSTRACT, query = "SE
我想知道是否有人可以举一个对使用“anyOf”关键字的模式有效的 JSON 示例?我正在尝试编写一些将在 python 中输出有效 JSON 的代码。 例如,如果您有一个如下所示的架构: "anyOf
我有一个 JSON,它可以有一个 IBAN 帐号,在这种情况下需要一个 BIC,或者一个 account_number 或两者都有 因此,这是有效的(仅 account_number): "banka
看起来两者都可以很好地处理我的输入验证代码。那么具体的区别是什么呢? 具有 oneof 的架构 [{ "id": "MyAction", "oneOf": [{ "$ref": "A1" },
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 6 年前。 Improve
假设我们有这样一个模式(我借用了 OpenAPI 3.0 格式,但我认为意图很明确): { "components": { "schemas": { "HasName": {
协程 async返回 Deferred还有延迟执行的例子和 await 的用法。 但是,我们怎么能等待 Deffered 中的任何一个?要完成的实例? 简而言之 // whats the equi
我尝试使用 ParseJSON 操作在逻辑应用程序中添加 JSON 架构验证。我想验证消息中任一对象是否存在(相当于 XSD 选择)。 例如,消息可能包含姓氏或姓氏。 { "name": "Alan"
我在做 CompletableFuture.anyOf(manyfutures).thenRun( new Runnable() { } } 但是runnable中的代码只运行一次!我预计它会运行很多
目前要使用 CompletionStage 的集合做一些简单的事情需要跳过几个难看的圈子: public static CompletionStage translate(String foo) {
我正在尝试使用 anyOf 和 allOf 属性制作一个 OpenAPI 自动生成的 PHP 客户端。 目标是能够返回一个包含多态性的数组:不同类型的对象。 这些对象也有一个共同的基础对象。 在我的示
这是 JSON 模式和 JSON,如下面的链接中提供的用于说明目的。 JSON Schema and the JSON 格式: 数组中的单个 JSON 对象(具有它们的附加属性,可能会随数组中的其他对
我被困在如何正确使用 Jenkins 语法中建议的嵌套条件。 https://jenkins.io/doc/book/pipeline/syntax/#when 这是我目前的阶段: stage('Bu
好吧,我对 the OpenAPiI V3 docs 中引用的 anyOf 的使用有点迷茫。在 api 平台中。 现在,根据 api platform我们可以按如下方式传递 openapi 上下文的文
我是一名优秀的程序员,十分优秀!