不理解有效 JSON 架构中的此类型定义

Do not understand this type definition in a valid JSON Schema

对于CatsDogs的定义:

{
  "Boxes": {
        "type":"object",
        "properties":   {
                        "Cats": {"type":["integer","null"]},
                        "Dogs": {"type":["integer","null"]}
                        }
        }
}

"type": [ "integer", "null" ] 有什么限制?

以下 JSON 针对此架构进行验证:{ "Boxes": { "Cats": [2, 3, 4, null, "hi"] } }。由于 Cats 包含一个数组,该数组又包含整数、字符串和 null,因此我假设验证会失败。

首先,如果您希望您的数据有一个名为 "Boxes" 的顶级 属性,那么您需要将顶级数据定义为具有该 属性 的对象],例如

{
    "type": "object",
    "properties": {
        "Boxes": {
            "type":"object",
            "properties": {
                "Cats": {"type":["integer","null"]},
                "Dogs": {"type":["integer","null"]}
            }
        }
    }
}

对于您编写的架构,顶级 "Boxes" 将被忽略,因为它不是关键字,因此架构实际上没有任何约束。

如果您使用上述构造,则 "Cats""Dogs" 属性将被限制为整数或 null.

不允许使用数组 - 如果您想要一个数组,那么您应该为这些属性定义 "type":"array",然后使用 items.

来限制数组项