我使用阿新作为API输入的模式验证器。
我需要验证是否收到了这种格式的数据:
floors: [
{
name: "Floor 1",
rooms: [
{
name: "Room 1"
},
... more rooms
]
},
... more floors
]基本上是Array of Objects,这些对象也有Array of Objects。每一层都有一个或多个房间。
是否可以使用AJV使用一个干净的JSON模式来验证这些数据,还是需要为AJV编写一些自定义关键字/验证器?
我试着去做,但最终我得到了这个,但它似乎行不通:
floors: {
type: "object",
minProperties: 1,
properties: {
name: {
type: "string"
},
rooms: {
type: "object",
minProperties: 1,
properties: {
name: {
type: "string"
}
},
required: ["name"]
}
},
required: ["name", "rooms"]
}发布于 2019-09-19 20:55:07
我想我自己找到了解决办法:
floors: {
type: "array",
minItems: 1,
items: {
type: "object",
properties: {
name: {
type: "string"
},
rooms: {
type: "array",
minItems: 1,
items: {
type: "object",
properties: {
name: {
type: "string"
}
},
required: ["name"],
additionalProperties: false,
},
}
},
required: ["name", "rooms"],
additionalProperties: false,
}
}如果它有一些安全漏洞,可以泄漏一些无效的东西,请纠正我:)
https://stackoverflow.com/questions/58018691
复制相似问题