Json Schema validation: do not allow fields other than those declared in schema

24,017

You can create a json-schema and use the option:

additionalProperties = false

That way you only allow the attributes defined in properties. In your case:

{
    "properties": {
        "fname": {"type": "string"},
        "lname": {"type": "string"},
        "age": {"type": "string"}
    },
    "additionalProperties": false
}
Share:
24,017
Tuan Anh Tran
Author by

Tuan Anh Tran

BY DAY: Node.js guru BY NIGHT: I write code for fun. Blog sometimes at https://tuananh.net

Updated on July 09, 2022

Comments

  • Tuan Anh Tran
    Tuan Anh Tran almost 2 years

    Suppose that I have schema like

    fname: string
    lname: string
    age: string
    

    None of them are required. User can send me any of those attributes above but nothing else that is not declared. They can pass me fname, lname and age or all. But if they pass me all and additional property like middle_name the message should be rejected.

    How would I define a schema like this?