不理解有效 JSON 架构中的此类型定义
Do not understand this type definition in a valid JSON Schema
对于Cats
和Dogs
的定义:
{
"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
.
来限制数组项
对于Cats
和Dogs
的定义:
{
"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
.