【发布时间】:2022-01-14 07:07:05
【问题描述】:
我尝试使用以下架构验证此 JSON。
{
"a": "1"
}
架构:
{
"$schema": "http://json-schema.org/draft-07/schema#",
"allOf": [
{
"oneOf": [
{
"type": "object",
"properties": {
"a": {
"type": "integer"
}
},
"additionalProperties": false
},
{
"type": "object",
"properties": {
"b": {
"type": "boolean"
}
},
"additionalProperties": false
}
]
}
]
}
(这只是一个演示问题的简化示例。)
验证应该失败(“a”必须是整数而不是字符串)但未检测到错误。 但是如果我用 oneOf 或 anyOf 替换 allOf,它会按预期失败。 此外,如果我在嵌套模式中将 oneOf 替换为 anyOf 。 是我遗漏了什么,还是验证器有问题?
编辑 - 这似乎是 IntelliJ IDEA 验证器中的一个错误。它适用于 python3-jsonschema、Java Everit、jsonschema.dev。
【问题讨论】:
-
此示例实际上并未显示可重现的问题。它按预期工作......看:jsonschema.dev/s/RilXu
-
我怀疑我知道问题所在,但我无法确认,因为我无法用这个例子重现。我毫不怀疑你正面临挑战 =]
标签: json validation intellij-idea schema jsonschema