Saltar al contenido
SDETRole
SDETRole

JSON y datos

Validador JSON

Comprueba la sintaxis JSON y localiza la posición exacta del error.

Se ejecuta íntegramente en tu navegador Sin registro

Input JSON

0 chars

Acerca de esta herramienta

Un error de sintaxis en un fixture o en el body de una petición es una de las causas más frecuentes de un fallo de test desconcertante. Este validador comprueba el JSON contra el estándar estricto e informa del primer error con su línea y columna, además de un resumen de la estructura del documento (objetos, arrays, claves y profundidad) cuando es válido. Para validar la forma de los datos y no su sintaxis, usa el validador de JSON Schema.

Cómo usarla

  1. Pega el JSON que quieres comprobar.
  2. Lee el banner de resultado: verde significa válido; rojo muestra el mensaje de error y su posición.
  3. Corrige la posición indicada; el resultado se actualiza mientras escribes.

Qué se considera JSON válido

El validador aplica la gramática estricta de RFC 8259, las mismas reglas que usa JSON.parse. Un documento es un único valor: un objeto, un array, una cadena, un número, true, false o null. Por tanto, un "hello" o un 42 sueltos son JSON válido, aunque la mayoría de las APIs devuelvan un objeto.

Las claves duplicadas son una trampa habitual. El estándar dice que los nombres de un objeto DEBERÍAN ser únicos, pero no prohíbe repetirlos, y JSON.parse conserva en silencio el último valor. Una comprobación de sintaxis no marcará {"id": 1, "id": 2}, así que vigila los duplicados en la revisión de código o con un linter.

Cómo leer el mensaje de error

Cada navegador redacta los errores de análisis de forma distinta. Chrome muestra mensajes como "Unexpected token" o "Expected property name" con una posición, y Firefox da una línea y una columna. En todos los casos, la posición es donde el parser se rindió, que suele estar justo después del error real: una coma que falta, una comilla sin cerrar o un corchete suelto en la línea anterior.

Validar JSON en tests automatizados

  • Playwright: await response.json() lanza una excepción cuando el body no es JSON válido, así que el test falla en esa línea. Comprueba también response.headers()['content-type'], porque un servidor puede enviar texto JSON etiquetado como HTML.
  • REST Assured: haz la assertion .contentType(ContentType.JSON) y después comprueba la estructura con matchesJsonSchemaInClasspath("order-schema.json") del módulo json-schema-validator.
  • Postman: pm.response.json() lanza una excepción con JSON no válido, y pm.response.to.be.json comprueba el content type.
  • Para la forma y los tipos (campos obligatorios, formatos, enums), pasa al validador de JSON Schema. La validación de sintaxis solo demuestra que el texto se puede analizar.

Preguntas frecuentes: Validador JSON

¿Qué diferencia hay entre validar JSON y validar con un schema?

La validación de sintaxis comprueba que el texto es JSON bien formado. La validación con schema comprueba que ese JSON bien formado tiene los campos, tipos y restricciones esperados, como «id es un entero obligatorio».

¿Por qué el error señala una posición posterior al fallo real?

Los parsers informan de dónde ya no pudieron continuar. Una coma o una comilla que falta suele estar justo antes de la posición indicada.

Escribe para buscar en todo SDETRole.

Búsqueda de texto completo con Pagefind · se ejecuta en tu navegador Abrir la página de búsqueda →