2014-12-01 16 views
14

Supponiamo che io ho lo schema come sono tenutiJSON Schema di convalida: non consentono settori diversi da quelli dichiarati nello schema

fname: string 
lname: string 
age: string 

Nessuno di loro. L'utente può inviarmi uno qualsiasi di questi attributi sopra ma qualcun altro che non è dichiarato. Mi possono passare fname, lname e age o tutti. Ma se mi passano tutte e altre proprietà come middle_name il messaggio deve essere rifiutato.

Come definirei uno schema come questo?

+0

Dai un'occhiata a JSON-schema: http://json-schema.org/ – jruizaranguren

+0

@jruizaranguren ho fatto e hanno è necessario un campo chiamato 'required' per indicare una proprietà. Non è quello che volevo però. Voglio verificare la disponibilità di campi aggiuntivi in ​​input -> if exists -> reject. –

+0

additionalProperties = false – jruizaranguren

risposta

26

È possibile creare un json-schema e utilizzare l'opzione:

additionalProperties = false 

In questo modo si consente solo gli attributi definiti nelle proprietà. Nel tuo caso:

{ 
    "properties": { 
     "fname": {"type": "string"}, 
     "lname": {"type": "string"}, 
     "age": {"type": "string"} 
    }, 
    "additionalProperties": false 
}