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

Tuan Anh Tran picture Tuan Anh Tran · Dec 1, 2014 · Viewed 18.2k times · Source

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?

Answer

jruizaranguren picture jruizaranguren · Dec 10, 2014

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
}