2013-08-12 11 views
5

Sto provando a convalidare uno schema JSON basato sulla relazione tra due elementi dell'oggetto json.Schema JSON: l'elemento è valido in base al valore di un altro elemento

Secondo il progetto di JSON Schema: per convalidare gli elementi di un JSON con le parole chiave inter-depedant:

4,2. Parole chiave interdipendenti

Per convalidare un'istanza, alcune parole chiave sono influenzate dalla presenza (o dall'assenza) di altre parole chiave . In questo caso, tutte queste parole chiave verranno raggruppate nella stessa sezione.

http://json-schema.org/latest/json-schema-validation.html#anchor9

Il mio problema è che il progetto, in realtà non dice come scrivere lo schema al fine di prevedere che la convalida. Quello che devo fare è convalidare un json come questo:

{ a: 1, b: 2} 

Quando a è sempre inferiore o uguale a b. Può essere fatto? Come scrivo lo schema?

Grazie

risposta

5

Cosa che parte della specifica significa (per esempio) che il comportamento della parola chiave "additionalItems" dipende la parola "items", in modo che le due parole chiave sono posti uno accanto all'altro nelle specifiche.

Sfortunatamente, questo tipo di convalida comparativa di due valori non è possibile in JSON Schema. Tutti i vincoli di valore sono calcolati in modo indipendente.

+0

Vedo, ok, apprezzo la spiegazione, non ho capito i documenti quindi .. – Deleteman

+1

Ciao - piccolo aggiornamento su questo. La prossima versione di JSON Schema (v5) potrebbe avere una nuova parola chiave: ['$ data'] (https://github.com/json-schema/json-schema/wiki/%24data-%28v5-proposal%29) . Questa parola chiave ti consente di fare esattamente ciò che desideri, quindi potrebbe valere la pena tenere d'occhio i progressi della v5, che si spera presto! :) – cloudfeet

+0

grazie per l'aggiornamento! : D – Deleteman

Problemi correlati