Validación de esquema y datos

Validador de JSON SchemaDel valor incorrecto a su restricción

Prueba el ejemplo. La comprobación del esquema solo no necesita datos; validar la instancia utiliza ambos documentos.

Validador de JSON Schema

JSON Schema

Datos JSON

Las entradas y referencias se procesan en este navegador; no se envían datos de validación ni se descargan referencias remotas.

Opciones de validación

Desactivado: format es una anotación. Activado: ajv-formats comprueba formatos conocidos; los desconocidos impiden compilar.

Referencias locales

Hasta diez archivos JSON, cada uno con un $id absoluto único sin # en la raíz. Los nombres no resuelven referencias.

No hay archivos de referencia.

    Listo para una comprobación manual.

    El Validador de JSON Schema detecta cadenas donde se esperan enteros, claves obligatorias ausentes y propiedades inesperadas. Un documento con sintaxis correcta puede incumplir un contrato de API. Compara la respuesta capturada con sus reglas antes de cambiar el código que la recibe.

    La validación de esquema JSON distingue una clave ausente de un valor null. No inserta default ni convierte cadenas numéricas para conseguir un resultado favorable: comprueba los datos que realmente proporcionaste.

    Por qué usar el Validador de JSON Schema

    Relaciona datos y restricciones

    El Validador de JSON Schema muestra la ruta de la instancia junto a la del esquema. /users/0/age señala un valor con tipo incorrecto; required puede señalar el objeto padre. Los parámetros identifican entonces la propiedad que falta.

    Un nodo de datos resaltado se conecta con su restricción en otro árbol.

    Conserva las definiciones separadas

    Importa los esquemas dependientes sin pegarlos dentro de la raíz. Cada archivo se registra mediante su $id absoluto. Las referencias relativas siguen la URI base; el nombre del archivo solo sirve para mostrarlo en la lista.

    Un esquema principal conecta dos archivos de referencia locales con un resultado común.

    Preparar las condiciones de la prueba

    01

    Haz coincidir declaración y borrador

    El valor inicial es 2020-12. Si $schema contradice la selección, la comprobación falla. Las tuplas usan un array items en draft-07 y prefixItems en 2020-12; cambiar el selector no migra un contrato existente.

    02

    Comprueba primero el esquema

    La comprobación independiente analiza, revisa y compila la raíz y todas las dependencias importadas sin leer la instancia. Cada referencia necesita un $id absoluto único sin fragmentos. Un destino ausente detiene la compilación.

    03

    Repite la prueba tras editar

    Ctrl/Cmd+Enter inicia la validación manual. Cambiar datos, opciones o referencias cancela la tarea anterior y bloquea la exportación. Sustituir el ejemplo, vaciar o quitar referencias requiere vista previa y Aplicar; Deshacer restaura los datos y el informe anteriores.

    Qué comprueba cada fase

    Tres dialectos elegidos explícitamente

    Este Validador de JSON Schema utiliza Ajv para draft-07, 2019-09 y 2020-12. Las condiciones y combinaciones siguen el dialecto elegido. Las palabras clave desconocidas provocan errores de compilación para evitar restricciones ignoradas por un error de escritura.

    Los formatos son opcionales

    Al validar JSON, format empieza desactivado. Actívalo para comprobar email, date-time, URI, UUID y otros formatos de ajv-formats. Un formato desconocido impedirá compilar. La restricción pattern se aplica independientemente de este interruptor.

    Distingue la regla inválida del dato incorrecto

    La herramienta JSON Schema online separa sintaxis, metavalidación, referencias sin resolver e incumplimientos de la instancia. Solo los informes terminados se exportan. Los textos de la interfaz están traducidos; los mensajes técnicos del motor conservan su inglés original.

    Inspecciona rutas y parámetros

    La ejecución termina pronto cuando puede, aunque una composición puede devolver varios errores de ramas. Lee instancePath, schemaPath, keyword y parámetros en conjunto. La lista muestra 50 entradas cada vez; el archivo JSON contiene todo el informe aceptado.

    Límites que afectan al resultado

    Las referencias no descargan contenido
    Se resuelven referencias internas y esquemas importados, sin solicitudes HTTP. Cada archivo necesita un $id absoluto sin # en su raíz y no puede duplicar otro ID. Un nombre de archivo coincidente no sustituye al identificador.
    No se reparan los datos
    No hay conversión de tipos, inserción de default ni eliminación de propiedades. Todos los documentos rechazan JSON5, comentarios, comas finales y claves duplicadas para evitar validar valores que ya fueron sobrescritos silenciosamente.
    Sin extensiones arbitrarias
    Solo se aceptan los tres borradores indicados. No se admiten metaesquemas personalizados, $vocabulary, $async, $data ni palabras clave desconocidas. Proporciona un fragmento compatible; esta página no valida documentos OpenAPI completos. strictSchema de Ajv también puede rechazar reglas ignoradas, como then sin if. No se admiten claves exactamente llamadas __proto__ en properties, patternProperties o dependencies por una limitación del motor; las claves homónimas de la instancia no están afectadas.
    Sin precisión numérica arbitraria
    Se rechazan valores no finitos, enteros matemáticos fuera del rango seguro y decimales alterados al convertirlos a Number y devolverlos a texto. 1.0 y 1e0 sí se admiten. Los decimales ordinarios usan IEEE 754; multipleOf puede reflejar límites de coma flotante.
    Presupuestos de entrada y ejecución
    Cada documento permite 500.000 caracteres, 50.000 nodos y profundidad 40. El conjunto admite 1.000.000 de caracteres y diez referencias. El worker se termina a los cinco segundos; eso significa incompleto, nunca válido o inválido.
    No es una lista de todos los fallos
    allErrors está desactivado. Corrige el problema informado y vuelve a ejecutar. El informe permite 1.000 errores y 500.000 caracteres; superar un límite hace fallar el informe entero. Una muestra correcta tampoco demuestra que todos los futuros datos cumplirán el contrato.

    Preguntas del Validador de JSON Schema

    ¿Se puede usar el borrador 2020-12?

    Sí, puedes elegir 2020-12, además de draft-07 y 2019-09. El selector empieza en 2020-12. Si existe una declaración $schema, debe coincidir; no se acepta silenciosamente un dialecto diferente ni se migra su sintaxis.

    ¿Cómo se tratan los formatos definidos por el usuario?

    Con la comprobación activada solo se reconocen los formatos incluidos por ajv-formats; un nombre desconocido provoca error de compilación. Desactivada, format se trata como anotación. Para una regla específica puedes usar pattern, sujeto a los límites de ejecución.

    ¿Se pueden resolver referencias externas con $ref?

    Se resuelven destinos internos y archivos locales importados con un $id absoluto que corresponda al destino. Las referencias relativas siguen su URI base. No se obtiene ningún recurso de un servidor y un destino no disponible detiene la compilación.

    ¿Dónde se ejecuta la validación?

    El procesamiento se ejecuta en un worker del navegador. La herramienta no envía esquemas ni instancias a un servicio de validación y tampoco descarga referencias HTTP. Cancelar o superar el tiempo permitido termina el worker sin emitir un veredicto.

    ¿En qué cambian draft-07, 2019-09 y 2020-12?

    Los dialectos modifican palabras clave y semántica. Por ejemplo, las tuplas de draft-07 usan un array en items, mientras que 2020-12 usa prefixItems. Selecciona el dialecto del contrato y revisa el contenido al migrarlo; la herramienta no hace esa migración.

    ¿Hay un caso de esquema que debamos revisar?

    Prueba también un caso rechazado

    Usa el Validador de JSON Schema con ejemplos correctos e incorrectos. Conserva el borrador y la opción format junto al informe para explicar diferencias entre entornos.