Ir al contenido principal
CuteJSON
↑↓ Navegar Enter Seleccionar Esc Cerrar

Como validar JSON contra un JSON Schema

Publicado 2 min de lectura Por Akash Kinkar Pandey

Un schema solo es util si puedes verificar un documento contra el y obtener una respuesta clara sobre que fallo y donde. Este validador cubre el subconjunto de JSON Schema que el generador de este sitio escribe, por lo que un schema producido alli esta garantizado de poder ser aplicado en esta pagina.

Usar el validador de JSON Schema

Pega un schema a la izquierda y el documento a verificar a la derecha, luego presiona Validar. Cargar el ejemplo llena ambos paneles a la vez, para que puedas editar solo el documento y ver inmediatamente lo que el schema rechaza.

Dado el schema

{
  "type": "object",
  "properties": {
    "age": {"type": "integer", "minimum": 0},
    "name": {"type": "string", "minLength": 2}
  },
  "required": ["age", "name"]
}

y el documento {"age": -5, "name": "A"}, la validacion reporta dos problemas en una pasada: minimum fallo en /age porque -5 esta por debajo de 0, y minLength fallo en /name porque "A" tiene un solo caracter. Cada problema se reporta, no solo el primero, y cada uno lleva la palabra clave exacta que lo rechazo y un JSON Pointer al valor, para que un problema sea una ruta a la que puedes llegar en lugar de una oracion que tienes que descifrar.

Que se soporta

Type, enum y const; las palabras clave properties, patternProperties, additionalProperties y required; longitud, patron y formato en cadenas; limites y multiplos en numeros; items y uniqueItems en arreglos; los combinadores allOf, anyOf, oneOf y not; if-then-else; y referencias locales a traves de $defs o definitions. Una palabra clave que este validador no implementa se trata como una anotacion y se ignora, que es exactamente lo que la especificacion de JSON Schema permite que un validador haga con una palabra clave no reconocida.

Que detiene toda la verificacion

Un $ref que no nombra nada dentro del schema, o uno que apunta completamente fuera de el, detiene la validacion por completo y lo indica. Reportar un resultado de paso o fallo para un schema que no pudo ser resuelto completamente seria una mentira disfrazada de respuesta, por lo que la herramienta se niega a dar una.

Intercambiar lados

Dado que los paneles de schema y documento son visualmente similares, Intercambiar lados mueve el schema actual al panel de documento y viceversa, util si los pegaste en los cuadros equivocados o quieres verificar rapidamente un schema para verificar su cordura basica contra si mismo.

Volver a todas las entradas