Vai al contenuto principale

Validatore JSON Schema

Confronta un documento JSON con uno schema direttamente nel browser. Gli errori indicano il percorso, la regola interessata e la causa del problema.

Integra questo widget

Personalizza il risultato, controlla l’anteprima e copia il codice.

Anteprima

Tipo di codice di integrazione

Codice da copiare

Responsive e ridimensionato automaticamente da Bethemesh.

Questo strumento ti è stato utile?

Come funziona questo strumento?

Verifica dati JSON rispetto ai vincoli supportati di uno schema e trova gli errori tramite percorso e parola chiave. Il primo campo contiene i dati e il secondo lo schema: due JSON validi non dimostrano il rispetto del contratto. Il controllo resta locale e non recupera schemi remoti. Questa implementazione copre un sottoinsieme esplicito di JSON Schema 2020-12, non tutte le estensioni.

Sono supportati type, const, enum, limiti numerici e multipleOf. Le stringhe usano minLength, maxLength e pattern. Gli array possono usare minItems, maxItems, uniqueItems e un singolo schema items. Gli oggetti supportano properties, required, additionalProperties, minProperties e maxProperties. Si valutano anche allOf, anyOf, oneOf e not.

Lo schema intero viene esaminato prima dei dati, inclusi rami non utilizzati. Vincoli supportati ma definiti male producono errori di schema. $ref, $dynamicRef, prefixItems, contains, patternProperties, dipendenze condizionali, regole unevaluated e if/then/else non sono implementati. La loro presenza genera una diagnosi esplicita anziché un successo fuorviante.

format non valida email, URL o date in questo motore. Annotazioni come title e description non verificano valori. Se servono vocabolari o funzioni ulteriori, scegli un validatore appropriato invece di rimuovere vincoli per ottenere un risultato positivo.

La lunghezza conta punti di codice Unicode, non unità UTF-16 o caratteri visivi combinati. const, enum e uniqueItems ignorano l’ordine delle proprietà degli oggetti, conservando ordine degli array e tipi scalari. I numeri hanno la precisione JavaScript: valori grandi e calcoli decimali richiedono una strategia adatta nell’applicazione.

Come usare questo strumento

  1. Separa dati e schema

    Incolla valori nel documento JSON e regole nel campo schema. Il pulsante di esempio mostra la separazione senza servizi esterni.

  2. Esegui e leggi le diagnosi

    Controlla riepilogo, percorso e regola di ogni riga. Un percorso con $schema indica un problema nella definizione del contratto.

  3. Correggi l’input appropriato

    Modifica dati errati o una regola definita male. Cambiare un campo nasconde i risultati precedenti; valida nuovamente prima di concludere.

Casi d’uso

Controllare campi obbligatori

Descrivi un piccolo contratto con required e properties e confronta risposte API. Un campo presente con null può richiedere un tipo nullable; non è semplicemente assente.

Verificare voci strutturalmente uniche

Usa uniqueItems per trovare oggetti equivalenti anche quando le proprietà sono scritte in ordine diverso.

Diagnosticare vincoli incompatibili

Distingui errori dei dati, schemi invalidi e parole chiave non supportate. Negli ultimi due casi il contratto completo non è stato verificato.

Esempi

Contare un’emoji come un punto di codice

Il blocco presenta insieme i due input: metti document nel primo campo e schema nel secondo. Il riepilogo conferma che 😀 rispetta una lunghezza tra 1 e 1.

Input

{
  "document": "😀",
  "schema": {
    "type": "string",
    "minLength": 1,
    "maxLength": 1
  }
}

Risultato

{
  "valid": true,
  "issues": []
}

Distinguere stringa e intero

id contiene la stringa "1", mentre lo schema richiede integer. Il riepilogo indica type in $.id. Il valore non viene convertito automaticamente in numero.

Input

{
  "document": {
    "id": "1"
  },
  "schema": {
    "type": "object",
    "required": [
      "id"
    ],
    "properties": {
      "id": {
        "type": "integer"
      }
    },
    "additionalProperties": false
  }
}

Risultato

{
  "valid": false,
  "issues": [
    {
      "path": "$.id",
      "keyword": "type"
    }
  ]
}

Consigli e buone pratiche

  • Prova documenti intenzionalmente non validi per confermare l’applicazione effettiva delle regole rilevanti.
  • Mantieni i vincoli necessari. Cambia validatore se non sono supportati, senza indebolire lo schema.
  • Campo mancante e null richiedono controlli distinti: required verifica la chiave e type il valore.
  • La validazione dello schema non controlla autorizzazioni, esistenza di risorse o altre regole del server.

Fonti e riferimenti

Domande frequenti

I riferimenti $ref vengono risolti?

No. Non si valutano riferimenti locali o remoti. Producono una diagnosi esplicita; nessun file o URL di schema viene caricato.

Perché format: email accetta una stringa qualsiasi?

Il motore non tratta format come un’asserzione di validazione. Usa vincoli supportati o un validatore con il vocabolario di formati richiesto dal contratto.

Come conta minLength un’emoji?

Un’emoji di un solo punto di codice come 😀 conta uno. Modificatori, segni combinati e sequenze di unione possono contare più punti anche se sembrano un solo carattere.

Perché oggetti scritti diversamente risultano uguali?

L’ordine delle proprietà non cambia il valore di un oggetto JSON. const, enum e uniqueItems applicano uguaglianza strutturale. L’ordine degli elementi degli array resta significativo.

Strumenti correlati

Strumenti simili o complementari a questo.

Strumenti simili

Genera un JSON Schema da un esempio JSON, localmente nel browser.

SviluppoUsa questo strumento

Formatta, minifica e valida un documento JSON per renderlo più leggibile o compatto.

SviluppoIn evidenzaUsa questo strumento