Pega un esquema y los datos para ver dónde no encajan; Generar convierte una muestra en un esquema borrador y comprueba que el borrador la acepta. Nada sale del navegador.
Se ejecuta localmente en tu navegadorUsa un objeto JSON Schema; las referencias que empiezan por #/ se resuelven dentro de esta página.
Pega datos para validarlos o una muestra representativa para generar un esquema inicial.
El validador lee type, enum, const, allOf, anyOf, oneOf, not e if/then/else; properties, patternProperties, additionalProperties, propertyNames, required, dependentRequired, minProperties y maxProperties; items, prefixItems, additionalItems, minItems, maxItems, uniqueItems y contains; minLength, maxLength, pattern y los formatos email, uuid, date, time, date-time, uri, uri-reference, ipv4, ipv6 y hostname; minimum, maximum, exclusiveMinimum, exclusiveMaximum y multipleOf; y valores locales de $ref, incluidas las referencias que recorren los datos. También se leen la forma booleana de exclusiveMinimum/exclusiveMaximum de draft-04 y la forma de array de items. Cualquier otra palabra clave o formato se deja pasar, así que confirma las reglas de producción con un validador conforme.
El esquema y los datos se quedan en el navegador; no se sube nada. Cada problema se lista con la ruta donde se encontró, la lista se corta tras 100 problemas, y Generar escribe un esquema borrador a partir de tu muestra y vuelve a comprobar esa muestra contra él.
Pega un JSON Schema y un documento JSON para ver todos los puntos en los que los datos incumplen el esquema. La comprobación se ejecuta en esta pestaña: no se sube nada y la herramienta sigue funcionando sin conexión.
Generar funciona al revés. Lee tu muestra, escribe un esquema borrador —elementos de array combinados entre todos los elementos, required limitado a las claves que llevan todos los objetos— y valida la muestra contra ese borrador, así que un borrador que no describe su propia muestra se avisa en lugar de guardarse en silencio.
type, enum, const, allOf, anyOf, oneOf, not e if/then/else; properties, patternProperties, additionalProperties, propertyNames, required, dependentRequired, minProperties y maxProperties; items, prefixItems, additionalItems, minItems, maxItems, uniqueItems y contains; minimum, maximum, exclusiveMinimum, exclusiveMaximum y multipleOf; minLength, maxLength y pattern; y valores locales de $ref, incluidas las referencias que recorren los datos. También se leen la forma booleana de exclusiveMinimum/exclusiveMaximum de draft-04 y la forma de array de items.
Las comprobaciones de formato cubren email, uuid, date, time, date-time, uri, uri-reference, ipv4, ipv6 y hostname. Una fecha como 2024-02-30 y una hora como 99:99 se rechazan porque se comprueban el calendario y el reloj, no solo la forma del texto; cualquier otro nombre de formato se deja pasar. La especificación trata format como anotación, así que esta página es más estricta que un lector básico.
enum, const y uniqueItems comparan valores de forma estructural: {"a": 1, "b": 2} y {"b": 2, "a": 1} son un solo valor, no dos. La versión anterior de esta herramienta comparaba el texto JSON y fallaba en los dos sentidos: rechazaba un valor enum válido y aceptaba un elemento duplicado en el array.
minLength y maxLength cuentan puntos de código, así que un emoji escrito como par suplente cuenta como un carácter.
Los elementos de un array se combinan entre todos los elementos: un array mixto produce una lista anyOf, y los objetos se combinan propiedad a propiedad, con required limitado a las claves que llevan todos los objetos. Un objeto o un array vacío no genera una lista required vacía.
Las cadenas que parecen un UUID, un correo, una fecha, una fecha-hora o un URI reciben la pista de formato correspondiente, así que el borrador es más útil que un tipo pelado: sirve para una primera pasada, no como contrato.
La lista de problemas se corta en 100 entradas. Una anidación de más de 4000 niveles detiene la comprobación con un mensaje en lugar de tumbar el navegador, y una referencia #/ circular se avisa en lugar de seguirse sin fin.
Los patrones y formatos usan el motor de expresiones regulares del navegador; 20.000 elementos de array o propiedades de objeto se comprueban en unos 20 ms.