gpt4 book ai didi

javascript - AJV - 复杂模式的验证

转载 作者:行者123 更新时间:2023-12-02 22:55:06 25 4
gpt4 key购买 nike

我正在使用AJV作为我的 API 输入模式验证器。

我需要验证是否收到了这种格式的数据:

floors: [
{
name: "Floor 1",
rooms: [
{
name: "Room 1"
},
... more rooms
]
},
... more floors
]

基本上它是对象数组,并且这些对象也有对象数组。每层都有一个或多个房间。

是否可以使用 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"]
}

最佳答案

我想我自己找到了解决方案:

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,
}
}

如果它存在一些安全漏洞,您可以在其中泄漏一些无效的内容,请纠正我:)

关于javascript - AJV - 复杂模式的验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58018691/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com