Valida JSON con un esquema JSON
Comprueba un documento JSON estricto con un subconjunto local y limitado de JSON Schema draft-07.
Espacio de trabajo de la herramienta
Validar un documento JSON con un esquema
Se necesita JavaScript para ejecutar esta herramienta de validación local.
Introduce un objeto JSON con el subconjunto admitido de draft-07.
0 / 100.000 unidades de código UTF-16
Introduce el documento JSON que se validará con el esquema.
0 / 250.000 unidades de código UTF-16
La validación se ejecuta localmente en tu navegador. Ninguna entrada se envía a un servidor.
Introduce un esquema y un documento JSON; después, elige Validar.
Resultado de la validación
Válido
Válido para el subconjunto admitido de draft-07.
No conforme
El documento no cumple el esquema.
Esta primera versión muestra el primer error; no enumera todas las incompatibilidades.
Entrada JSON no válida
El esquema o el documento no es JSON válido.
Esta primera versión muestra el primer error; no enumera todas las incompatibilidades.
Esquema
Documento
Esquema no válido
El esquema JSON no es válido.
Esquema no admitido
Este esquema JSON usa una función no admitida.
Validación detenida
No se pudo completar la validación. Puedes volver a intentarlo.
Keywords admitidas, referencias y límites
Acerca de este validador
Esta herramienta acepta esquemas objeto JSON que declaren http://json-schema.org/draft-07/schema#. Implementa un subconjunto de draft-07.
Keywords admitidas
$schema, title, description, type, properties, required, items, additionalProperties, enum, const, minimum, maximum, exclusiveMinimum, exclusiveMaximum, minLength, maxLength y pattern.
Keywords no admitidas
Las demás keywords se rechazan, incluidas $ref, definitions, format, allOf, anyOf, oneOf, not, dependencies y las condicionales.
Los patrones usan una gramática restringida: letras y dígitos ASCII, puntuación regex escapada, clases de caracteres simples, anclas de inicio o fin y como máximo un cuantificador ? o {mínimo,máximo} (máximo 32).
Los esquemas nunca se descargan. No se siguen referencias remotas como $ref y no están admitidas.
Límites de recursos
Esquema: 100.000 unidades de código UTF-16; profundidad del parser 60, 5.000 nodos, 1.000.000 unidades de trabajo del parser y 100 diagnósticos. El preflight permite 5.000 visitas estructurales, profundidad 40, 5.000 nombres, 50 patrones de hasta 128 unidades cada uno y 100 miembros por enum.
Documento: 250.000 unidades de código UTF-16; profundidad del parser 100, 25.000 nodos, 1.000.000 unidades de trabajo del parser y 100 diagnósticos. Las cadenas comprobadas con pattern admiten hasta 10.000 unidades de código.
La validación completa tiene 5.000.000 unidades de trabajo, 8.192 unidades de código variable por diagnóstico y un límite de 8 segundos. La interfaz no permite aumentar estos límites.
Valida un documento con un esquema
Introduce un objeto JSON Schema en Esquema JSON y el valor JSON que quieras comprobar en Documento JSON; después, elige Validar. Primero se analizan ambas entradas como JSON estricto, se comprueba el esquema completo y se evalúa el documento. Se muestra el primer error; esta primera versión no enumera todas las incompatibilidades. Un resultado satisfactorio indica que el documento cumple el subconjunto admitido por esta herramienta, no todas las funciones de draft-07.
Elige Cargar ejemplo para rellenar ambos editores con este par funcional. Puedes modificarlo; solo se valida al elegir Validar.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"name": { "type": "string", "minLength": 1 },
"active": { "type": "boolean" }
},
"required": ["name"],
"additionalProperties": false
}
{
"name": "Ada",
"active": true
}
Subconjunto admitido de draft-07
El esquema raíz debe ser un objeto JSON y declarar en $schema el valor exacto
http://json-schema.org/draft-07/schema#. Se admiten estas keywords y formas:
$schema,titleydescriptioncon valores de texto.typecomo un tipo o como una lista no vacía y sin duplicados:null,boolean,object,array,number,integerostring.propertiescomo objeto cuyos valores son esquemas;requiredcomo lista de nombres de propiedades únicos; yadditionalPropertiescomo booleano o esquema.itemscomo un esquema. No se admiten listas de esquemas enitems.enumcomo lista no vacía de hasta 100 valores JSON yconstcomo cualquier valor JSON.minimum,maximum,exclusiveMinimumyexclusiveMaximumcomo números finitos.minLengthymaxLengthcomo enteros no negativos. La longitud de texto se cuenta en puntos de código Unicode.patterncomo texto que use la gramática restringida descrita más abajo.
properties describe cómo se comprueba una propiedad si existe; no la hace
obligatoria. Solo deben existir los nombres incluidos en required. Una
propiedad ausente y otra cuyo valor es null son distintas: required
comprueba presencia y type comprueba el valor. additionalProperties acepta,
rechaza o comprueba otras propiedades; nunca las elimina ni las reescribe en el
documento.
Keywords y patrones rechazados
Se rechaza cualquier keyword que no aparezca en la lista anterior, antes de
validar el documento. Esto incluye $ref, incluso cuando apunta a una
definición local, además de definitions, format, allOf, anyOf, oneOf,
not, dependencies y las condicionales if, then y else. No se resuelven
referencias ni se descarga un esquema o se consulta un servicio remoto.
Los patrones se limitan a letras y dígitos ASCII, puntuación de expresiones
regulares escapada, clases de caracteres simples y ^ o $ solo al principio
o al final. Cada patrón admite como máximo un cuantificador ? o uno acotado
{mínimo,máximo}, donde el máximo es 32. Se rechazan otras funciones de las
expresiones regulares. Un patrón admite hasta 128 unidades de código, y un
texto del documento comprobado con patrón, hasta 10.000.
JSON estricto y precisión numérica
Ambos editores requieren JSON estricto. Los comentarios, las comas finales, las claves de objeto duplicadas y el contenido sobrante son errores. Los números que no se pueden representar de forma segura como números de JavaScript se rechazan y no producen un resultado de conformidad. Se valida el valor JSON analizado; una vez perdida la precisión, no se puede recuperar la escritura numérica original.
Límites de entrada y operación
El esquema admite hasta 100.000 unidades de código UTF-16. Su análisis se
limita a profundidad 60, 5.000 nodos JSON, 1.000.000 unidades de trabajo del
parser y 100 diagnósticos. El preflight del esquema permite 5.000 visitas
estructurales, profundidad 40, 5.000 nombres entre properties y required,
50 patrones de hasta 128 unidades de código cada uno y 100 valores en cada
enum.
El documento admite hasta 250.000 unidades de código UTF-16. Su análisis se
limita a profundidad 100, 25.000 nodos JSON, 1.000.000 unidades de trabajo del
parser y 100 diagnósticos. Los textos comprobados con pattern admiten hasta
10.000 unidades de código. La validación completa dispone de 5.000.000 unidades
de trabajo, 8.192 unidades de código variable por diagnóstico y un límite de 8
segundos. Al alcanzar un límite, se detiene la validación sin declarar el
documento válido o no conforme.
Procesamiento local
El análisis y la validación se ejecutan en un Worker local del navegador. Ninguna entrada se envía al servidor de la aplicación y no se descargan esquemas. El texto no se guarda en la URL, las cookies ni el almacenamiento del navegador. Al editar una entrada se borra el resultado anterior y se detiene el trabajo sobre el texto previo. Cancelar detiene una operación activa y conserva ambas entradas; Limpiar ambos las elimina explícitamente.