Validador de JSON Schema
Valida un document JSON amb un JSON Schema al navegador. Cada error es llista amb el seu camí de la instància, la paraula clau i el camí de l'esquema.
| # | Camí de la instància | Paraula clau | Missatge | Camí de l'esquema |
|---|
Com validar JSON amb un esquema
- Enganxa l’esquema a JSON Schema i les dades a Document JSON, o tria un cas preparat d’Exemple.
- Deixa Versió (draft) a Automàtica ($schema) per fer servir la versió que indica el
$schemade l’esquema, o força el draft 4, 7, 2019-09 o 2020-12. - La validació s’executa mentre escrius; Valida la torna a executar. Formata els dos torna a sagnar els dos textos.
- Llegeix el resultat: una línia verda quan el document és vàlid i, si no, una taula d’errors.
Com es llegeix la taula d’errors
Cada fila és una regla que ha fallat:
- Camí de la instància és un JSON Pointer cap al valor que ha fallat.
/roles/1és el segon element deroles;(arrel)és tot el document. - Paraula clau és la regla de l’esquema que ha fallat:
type,required,minimum,pattern,format,additionalProperties, etc. - Missatge explica el motiu del fallament, per exemple
0 is less than 1. - Camí de l’esquema apunta a la paraula clau dins de l’esquema, com
/properties/id/minimum, de manera que pots trobar la regla ràpidament.
La validació no s’atura al primer problema: es llisten tots els errors. Quan falla una propietat d’un objecte, el validador informa d’un resum («Property “id” does not match schema») seguit del motiu precís. Mostra només els errors més específics amaga aquests resums; desmarca l’opció per veure tota la cadena. Els errors sota anyOf i oneOf sempre es mantenen junts amb els errors específics de cada branca, perquè només tenen sentit conjuntament.
Els missatges d’error que genera el validador estan en anglès; la resta de la interfície d’aquesta eina està en català.
Què s’admet
- Versions (drafts): 4, 6 (validat amb les regles del draft 7), 7, 2019-09 i 2020-12, incloent-hi
$defs/definitions,$reflocals,if/then/else,dependentRequired,dependentSchemas,prefixItems,unevaluatedPropertiesiunevaluatedItems. - Formats: es comproven
date,time,date-time,duration,email,hostname,ipv4,ipv6,uri,uri-reference,uri-template,uuid,regex,json-pointerirelative-json-pointer. Els formats desconeguts s’ignoren, tal com permet l’especificació. - Referències:
$refpot apuntar a qualsevol lloc de l’esquema, incloent-hi un$idque ell mateix declari. Els esquemes remots no es baixen mai; una referència a una altra URL s’informa com a no resolta.
Aquesta eina valida documents segons el teu esquema. No comprova que l’esquema mateix segueixi el metaesquema, però t’avisa dels noms de type desconeguts com "strin" o "int", una errada tipogràfica habitual que els validadors, altrament, ignoren en silenci.
Els exemples
- Perfil d’usuari (2020-12):
required, longituds de cadena,format: email, unenumdins d’items,uniqueItemsiadditionalProperties: false. - Llista de productes amb $ref (draft-07): una matriu els elements de la qual fan referència a
#/definitions/product, amb unpatternper al SKU i un preu ambexclusiveMinimum. - Configuració amb if/then (2019-09): un certificat requerit només en mode HTTPS, un
oneOfentre correu electrònic i URI, i límits numèrics.
Cada exemple inclou un document amb errors deliberats, perquè vegis quin aspecte tenen els errors.
Preguntes freqüents
Es pugen les meves dades?
No. L’esquema i el document es validen al teu navegador; no s’envia res a cap servidor.
Per què el $ref del meu esquema és «no resolt»?
El validador només coneix l’esquema que has enganxat. Un $ref a un altre fitxer o URL no es pot seguir; copia les definicions referenciades a $defs i apunta a #/$defs/….
Quina versió (draft) he de fer servir?
Fes servir la que usi el teu projecte i declara-la amb $schema. Per als esquemes nous, la 2020-12 és la versió actual; OpenAPI 3.1 també la fa servir.
Per què integer rebutja 2.0?
No el rebutja: JSON Schema tracta 2.0 com un enter perquè el seu valor és sencer. 2.5 no compleix "type": "integer".
Funciona sense connexió?
Sí. Un cop la pàgina s’ha carregat i has executat una primera validació (que carrega el validador), no cal cap connexió.
Eines relacionades
- Formatador i validador de JSON Formatador i validador de JSON gratuït que embelleix, minimitza i comprova JSON al navegador, amb els errors de sintaxi indicats per línia i columna.
- Provador de JSONPath Prova expressions JSONPath amb el teu propi JSON al navegador. Filtres, porcions, descens recursiu, camins i JSON Pointers, amb exemples preparats.
- Convertidor de JSON a YAML Converteix JSON a YAML i YAML a JSON al navegador, amb àncores, claus de combinació i fitxers de diversos documents. No es puja res enlloc.