Vai al contenuto

Validatore di JSON Schema

JSON Schema Validator

Valida un documento rispetto a un JSON Schema e riporta ogni errore con il percorso dell’istanza.

Convalida un documento JSON rispetto a uno JSON Schema, draft 2020-12, interamente nel browser. Supera tutti i 1.299 test obbligatori della JSON-Schema-Test-Suite ufficiale, e ogni errore viene riportato con la posizione nell’istanza e la parola chiave che lo ha prodotto.

🔒 Funziona interamente nel tuo browserjson-schemavalidatejson

Schema (draft 2020-12)

Dati da validare

Risultato

Verdetto

Non valido

Fallimenti

3

Posizione nell’istanzaParola chiaveProblema
/portmaximumdeve essere al massimo 65535
/tagsuniqueItemsgli elementi 0 e 1 sono uguali
/debugfalsenon è mai valido qui (lo schema è false)
La validazione gira interamente in questa scheda contro JSON Schema draft 2020-12, e supera tutti i 1299 test obbligatori della JSON-Schema-Test-Suite ufficiale. $ref si risolve dentro lo schema, dentro i documenti aggiuntivi incollati e dentro i meta-schemi 2020-12 inclusi: i riferimenti remoti vengono rifiutati invece che scaricati, quindi un verdetto non dipende mai dalla rete. format viene riportato come annotazione e non imposto, che è il comportamento predefinito di 2020-12.

Come si usa

  1. Incollare lo schema e i dati

    Entrambe le caselle rivalidano mentre si digita. Un errore di sintassi nell’una o nell’altra viene segnalato a parte, così si sa quale lato è rotto.

  2. Aggiungere i documenti riferiti se ci sono dei `$ref`

    Basta accendere Schemi aggiuntivi e incollarli — un documento solo oppure un array di documenti, ciascuno con il suo `$id`. Non viene scaricato niente dalla rete, quindi anche uno schema diviso su più file si convalida qui.

  3. Leggere la tabella degli errori

    Ogni riga dà il percorso nell’istanza, la parola chiave che è fallita e che cosa voleva. Se il tutto va incollato in una issue, conviene copiarlo come JSON.

Domande frequenti

Perché il mio `"format": "email"` non viene applicato?

Perché la 2020-12 rende `format` un’annotazione per impostazione predefinita: un validatore può riportarlo senza controllarlo, e quasi tutti fanno esattamente così. Se serve che venga applicato, si usa `pattern`, oppure un validatore configurato con il vocabolario format-assertion.

Un `$ref` remoto non si è risolto.

I riferimenti remoti vengono rifiutati, non scaricati. Un validatore che va in rete dà risultati che dipendono dal DNS e dalla disponibilità di qualcun altro, e dice a quel qualcuno quali schemi si stanno convalidando. Il documento riferito va incollato invece nella casella degli schemi aggiuntivi.

Quali draft sono supportati?

La 2020-12. Uno schema Draft-07 spesso si convalida lo stesso — quasi tutte le parole chiave sono invariate — ma `definitions` non è `$defs`, `items` significa un’altra cosa per le tuple, e `$recursiveRef` non c’è più. Meglio controllare la riga `$schema` prima di darlo per scontato.

Perché tanti errori per un solo campo sbagliato?

Perché un errore dentro `anyOf`, `oneOf` o `allOf` riporta ogni ramo che è fallito: è quello che la specifica dice che contiene un’unità di output. La prima riga di solito è quella che interessa; le altre spiegano perché non ha funzionato nemmeno una delle alternative.

Può ricevere da

Dopo

Questi accettano ciò che produce questo strumento, così il risultato può passare direttamente.