Json Schema验证:不允许除模式中声明的字段之外的字段

Tua*_*ran 32 validation json jsonschema

假设我有类似的架构

fname: string
lname: string
age: string
Run Code Online (Sandbox Code Playgroud)

它们都不是必需的.用户可以向我发送上述任何属性,但任何其他未声明的属性.他们可以通过我fname,lnameage或全部.但是,如果他们通过我所有和middle_name消息的其他财产应该被拒绝.

我该如何定义这样的架构?

jru*_*ren 67

您可以创建json-schema并使用以下选项:

additionalProperties = false
Run Code Online (Sandbox Code Playgroud)

这样,您只允许在属性中定义的属性.在你的情况下:

{
    "properties": {
        "fname": {"type": "string"},
        "lname": {"type": "string"},
        "age": {"type": "string"}
    },
    "additionalProperties": false
}
Run Code Online (Sandbox Code Playgroud)