有关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,因此我认为验证失败了。
答案 0 :(得分:2)
首先,如果您希望数据具有名为"Boxes"
的顶级属性,则需要将顶级数据定义为具有该属性的对象,例如
{
"type": "object",
"properties": {
"Boxes": {
"type":"object",
"properties": {
"Cats": {"type":["integer","null"]},
"Dogs": {"type":["integer","null"]}
}
}
}
}
使用您编写的架构,顶级"Boxes"
将被忽略,因为它不是关键字,因此架构实际上没有任何约束。
如果您使用了上述构造,那么"Cats"
和"Dogs"
属性将被约束为整数或null
。
不允许使用数组 - 如果需要数组,则应为这些属性定义"type":"array"
,然后使用items
约束数组项。