Comprobar campos obligatorios
Describe un contrato pequeño con required y properties y compara respuestas API. Un campo presente con null puede necesitar un tipo anulable; no está simplemente ausente.
Compara un documento JSON con un esquema directamente en tu navegador. Cada error muestra la ruta, la regla incumplida y una explicación clara.
Comprueba datos JSON frente a las restricciones compatibles de un esquema y localiza errores mediante ruta y palabra clave. El primer campo contiene datos y el segundo el esquema; que ambos sean JSON válido no demuestra el cumplimiento del contrato. La comprobación es local y no recupera esquemas remotos. Esta implementación cubre un subconjunto explícito de JSON Schema 2020-12, no todas sus extensiones.
Se admiten type, const, enum, límites numéricos y multipleOf. Las cadenas usan minLength, maxLength y pattern. Los arrays pueden utilizar minItems, maxItems, uniqueItems y un esquema items único. Los objetos admiten properties, required, additionalProperties, minProperties y maxProperties. También se evalúan allOf, anyOf, oneOf y not.
Se inspecciona todo el esquema antes que los datos, incluidas ramas no utilizadas. Las restricciones compatibles mal definidas producen errores de esquema. No se implementan $ref, $dynamicRef, prefixItems, contains, patternProperties, dependencias condicionales, reglas unevaluated ni if/then/else. Su presencia genera un diagnóstico explícito en lugar de un éxito engañoso.
format no valida correos, URL ni fechas en este motor. Las anotaciones como title y description no comprueban valores. Si necesitas vocabularios o funciones adicionales, elige un validador apropiado en lugar de quitar restricciones para obtener un resultado positivo.
La longitud cuenta puntos de código Unicode, no unidades UTF-16 ni caracteres visuales combinados. const, enum y uniqueItems ignoran el orden de propiedades de objetos, pero conservan el de arrays y los tipos escalares. Los números tienen la precisión de JavaScript; valores muy grandes y cálculos decimales requieren una estrategia adecuada en tu aplicación.
Pega valores en Documento JSON y reglas en el campo de esquema. El botón de ejemplo muestra la separación sin contactar con servicios externos.
Revisa resumen, ruta y regla de cada fila. Una ruta que empieza por $schema indica un problema en la definición del contrato.
Modifica datos incorrectos o una regla mal definida. Cambiar un campo oculta resultados anteriores; vuelve a validar antes de concluir.
Describe un contrato pequeño con required y properties y compara respuestas API. Un campo presente con null puede necesitar un tipo anulable; no está simplemente ausente.
Usa uniqueItems para detectar objetos equivalentes aunque sus propiedades estén escritas en distinto orden.
Distingue errores de datos, esquemas inválidos y palabras clave no compatibles. En los dos últimos casos no se ha comprobado el contrato completo.
El bloque reúne ambas entradas: coloca document en el primer campo y schema en el segundo. El resumen del motor confirma que 😀 cumple una longitud entre 1 y 1.
Entrada
{
"document": "😀",
"schema": {
"type": "string",
"minLength": 1,
"maxLength": 1
}
}Resultado
{
"valid": true,
"issues": []
}id contiene la cadena "1", mientras el esquema exige integer. El resumen indica type en $.id. No se convierte automáticamente el valor a número.
Entrada
{
"document": {
"id": "1"
},
"schema": {
"type": "object",
"required": [
"id"
],
"properties": {
"id": {
"type": "integer"
}
},
"additionalProperties": false
}
}Resultado
{
"valid": false,
"issues": [
{
"path": "$.id",
"keyword": "type"
}
]
}No. No se evalúan referencias locales ni remotas. Generan un diagnóstico explícito y no se carga ningún archivo ni URL de esquema.
El motor no trata format como una aserción de validación. Usa restricciones compatibles o un validador con el vocabulario de formatos que requiere el contrato.
Un emoji de un solo punto de código, como 😀, cuenta uno. Modificadores, marcas combinadas y secuencias de unión pueden contar varios puntos aunque visualmente parezcan un carácter.
El orden de propiedades no cambia el valor de un objeto JSON. const, enum y uniqueItems usan igualdad estructural. El orden de elementos de un array sí sigue siendo significativo.
Herramientas relacionadas
Herramientas similares o complementarias a esta.
Comprueba una descripción de API en JSON o YAML sin subirla a un servidor.
Genera un JSON Schema desde un ejemplo JSON localmente en tu navegador.
Formatea, minimiza y valida un documento JSON para hacerlo más legible o compacto.