我现在已经在这个问题上花了几个多小时,我觉得是时候寻求一些帮助了,因为显然我遗漏了一些关于JSON模式验证的基本概念,我认为我已经理解了这些概念.

以下是我实际上希望不会通过我创建的某些模式的验证的一些JSON:

{
  "requests": {
    "Interface1": [
     {
       "foo": "bar",
       "id": 9999,
       "text": "foo"
     }
    ]
 }
}

当我清楚地指出addtionalProperties为FALSE并且在数组的每个嵌套对象中列出"foo"和"id"作为必需的属性名称时,以下模式为什么认为上述JSON是OK:

{
  "type": "object",
  "properties": {
    "requests": {
      "type": "object",
      "properties": {
        "interfacename": {
          "type": "array",
          "items": {
            "type": "object",
            "properties": {
              "foo": {
                "type": "string"
              },
              "id": {
                "type": "number"
              }
            },
            "required": [
              "foo",
              "id"
            ],
            "additionalProperties": false
          }
        }
      },
      "required": [
        "Interface1"
      ]
    }
  }
}



推荐答案

您的架构中有interfacename个低于properties,而不是Interface1.

Json相关问答推荐

JOLT转换过滤出特定值/对象

在Golang中从 struct 手动创建JSON对象

报告重复的对象键

Android 如何判断小时时间是否在两个时间之间?

Vega-Lite规范:尽管在规范中提供了数据,但显示空图表

如何在jolt中使用shift和modify-overwrite-beta

我无法将来自 API 的数据显示到 FlatList 中,但我在 console.log 中看到了它.问题是什么?

从 PySpark 中的复杂 JSON 文件中高效清除 HTML 实体

如何在 powerapps 中将详细信息表单转换为 json?

使用 System.Text.Json 序列化记录成员

如何在 Django 的模板语言中获取 json 键和值?

如何使用 LINQ 在 C# 中重构对象?

JSON Schema 与 XML Schema 的比较及其future

在 Rails 3 中处理 JS/ERB 模板中的 JSON

如何在不消除对象歧义的情况下使用 circe 解码 ADT

使用 jq 如何用其他名称替换键的名称

在浏览器中查看 JSON 文件

Retrofit2.0 得到 MalformedJsonException 而 json 似乎正确?

带有 Jackson 的不可变 Lombok 注释类

如何在dart Flutter 中将json字符串转换为json对象?