在 jsonSchema 中,我正在努力弄清楚 unevaluatedProperties 如何与子条件字段配合使用的嵌套行为。 我有一个示例模式(https://www.jsonschemavalidator.net/s/nwBr5INn),我试图让验证器回来并说这三个字段不应该存在: level1_ShouldNotBeHere field5_ShouldNotBeHere array1_ShouldNotBeHere
最终,我尝试使用验证器 (AJV) 返回与 unevaluatedProperties 相关的错误列表,并从生成的 json 中删除这些字段。
在此示例中(https://www.jsonschemavalidator.net/s/eEwqRkTg),我可以让前两个字段返回,但是我无法弄清楚将 unevaluatedProperties 放在哪里以使下面的字段返回作为错误:array1_ShouldNotBeHere
您列出了所需的属性 - 这意味着您必须至少拥有这些属性。但这并不意味着你不能拥有别人。
尝试在架构中将 extraProperties 设置为 false。这样,只允许模式中的属性。