Validador y formateador de JSON

Valida y embellece el contenido JSON para mejorar la legibilidad y la precisión de tus datos.

5 de 2 calificaciones
Validador y formateador de JSON

El Validador y formateador de JSON es una herramienta gratuita que comprueba si un contenido JSON tiene una sintaxis válida y, si es correcto, le da formato para que su estructura resulte más fácil de leer.

¿Para qué sirven la validación y el formato de JSON?

La validación comprueba que la entrada respete la gramática de JSON. El formateo, por su parte, presenta los objetos y arrays válidos con espacios y sangrías uniformes. Resulta útil para depurar respuestas de API, revisar configuraciones antes de desplegarlas o leer datos compactos proporcionados por terceros.

La sintaxis de JSON es más estricta que la de un objeto literal de JavaScript. Los nombres de las propiedades deben escribirse entre comillas dobles, las cadenas no pueden usar comillas simples y no se permiten comas finales en objetos ni arrays. Los comentarios, undefined, NaN e Infinity tampoco forman parte de la especificación JSON.

Esta herramienta utiliza la función json_decode de PHP en el servidor. Tu contenido se envía al servidor mediante HTTPS y no se almacena. No obstante, sí sale de tu dispositivo, así que oculta las contraseñas, los tokens de acceso y los datos personales si las normas de tu organización no permiten enviarlos a un servidor externo.

¿Cómo valido y formateo un JSON?

Pega el contenido en el campo JSON y ejecuta la herramienta. Para obtener un resultado útil, introduce un valor JSON completo, no una parte de un objeto copiada de una línea de registro.

  1. Copia la respuesta sin procesar, el bloque de configuración u otro valor JSON, sin incluir las etiquetas de consola que lo rodeen.
  2. Pégalo en el campo JSON y conserva las comillas y los caracteres de escape.
  3. Ejecuta la validación y revisa el resultado formateado o el error indicado.
  4. Si la validación falla, corrige el primer problema de sintaxis aparente y vuelve a ejecutarla. Una sola comilla ausente puede hacer que varios caracteres posteriores se interpreten de forma incorrecta.
La herramienta Validador y formateador de JSON en digily.link, con su formulario de entrada

Los cuatro caracteres de espacio en blanco permitidos entre tokens JSON, espacio (U+0020), tabulador (U+0009), salto de línea (U+000A) y retorno de carro (U+000D), no son significativos. Por tanto, pueden añadirse o eliminarse sin modificar los datos. En cambio, los espacios dentro de una cadena entre comillas sí forman parte de los datos y deben mantenerse intactos. La puntuación incluida en las cadenas también se conserva, aunque las comillas, las barras invertidas y los caracteres de control requieren la secuencia de escape correspondiente.

¿Cómo interpreto el resultado de la validación?

Un resultado correcto significa que PHP ha podido decodificar la entrada como JSON. Si falla, el analizador no ha logrado interpretarla como un único valor JSON completo y válido. El formateo permite ver con claridad el anidamiento y los límites de los objetos y arrays válidos.

Estas son algunas causas habituales de error:

  • una coma final antes de } o ];
  • un nombre de propiedad sin comillas, como {name: "Ada"};
  • cadenas entre comillas simples;
  • la ausencia de una coma entre propiedades o elementos de un array;
  • unas comillas dobles o una barra invertida sin escapar dentro de una cadena;
  • un objeto, array o cadena incompletos;
  • una entrada UTF-8 no válida o un carácter de control sin escapar dentro de una cadena;
  • una parte entera con ceros iniciales innecesarios, como 01 o -01, o valores ajenos a JSON, como NaN.

Un campo vacío no es JSON válido. En cambio, un valor aislado como 42, true, null o "hello" sí lo es, aunque no sea un objeto ni un array. Un contenido con demasiados niveles de anidamiento también puede superar el límite del decodificador.

La validación sintáctica no confirma que los datos cumplan el contrato de una API. Un documento puede ser JSON válido y, aun así, contener una cadena donde la aplicación espera un número, omitir una propiedad obligatoria o usar un formato de fecha no admitido. Para comprobar estos requisitos, utiliza JSON Schema o validaciones en la propia aplicación.

Ejemplo de resultado generado por la herramienta Validador y formateador de JSON

Ejemplos prácticos de JSON

Entrada compacta válida:

{"name":"Ada","active":true,"roles":["admin","editor"]}

El resultado formateado muestra las propiedades y los elementos del array en niveles separados y con sangría. Los valores siguen siendo, respectivamente, una cadena, un booleano y un array. El formato cambia la presentación, no los tipos de datos subyacentes.

Entrada no válida con una coma final:

{"name":"Ada","active":true,}

La validación falla porque JSON no permite una coma después de la última propiedad. Elimina esa coma para que el objeto sea válido.

Los caracteres acentuados y los textos en alfabetos no latinos pueden aparecer directamente en cadenas JSON si la entrada utiliza UTF-8 válido. Por ejemplo, {"city":"Zürich","greeting":"こんにちは"} es válido. La notación de escape de JSON, como \u00fc, es otra representación válida de determinados caracteres Unicode, aunque los caracteres situados fuera del Plano Multilingüe Básico requieren pares sustitutos.

¿Cuándo no merece la pena formatear un JSON?

El formateo no es necesario si solo una máquina va a leer el JSON y nadie necesita inspeccionarlo ni revisarlo mediante un sistema de control de versiones. La sangría y los saltos de línea adicionales aumentan el número de bytes transferidos, por lo que las respuestas de producción suelen enviarse en formato compacto.

Tampoco aporta mucho minificar un JSON que ya es compacto. Repetir la minificación no puede acortar los nombres fijos de las propiedades ni los valores de las cadenas, y modificar esos valores cambiaría los datos. Si quieres preparar JavaScript para su despliegue, en lugar de trabajar con datos JSON, la operación más adecuada es el Minificador de JS.

El formateo resulta especialmente útil al inspeccionar estructuras o valores JSON durante la depuración, la revisión de código y las comprobaciones previas al despliegue. Hace visibles los niveles de anidamiento que no encajan, facilita la lectura de arrays grandes y genera comparaciones más limpias cuando una configuración se guarda en Git. No repara automáticamente un JSON mal formado ni determina qué pretendía expresar un fragmento ambiguo.

Preguntas frecuentes

¿Se pueden incluir comentarios en JSON?

No. El estándar JSON no define una sintaxis para comentarios, por lo que // comment y /* comment */ hacen que la validación falle. Si necesitas comentarios en un archivo de configuración, utiliza un formato que los admita o elimínalos antes de pasar el contenido a un analizador JSON estricto.

¿Se rechazan los nombres de propiedad duplicados?

No necesariamente. La especificación JSON indica que los nombres de los miembros de un objeto deberían ser únicos, pero los analizadores no siempre consideran los duplicados un error de sintaxis. La decodificación de PHP suele conservar el último valor, así que detecta los duplicados antes de validar si necesitas mantener todas las apariciones.

¿Puedo validar un archivo JSON Lines?

No como un único documento JSON. JSON Lines, también llamado NDJSON, contiene un valor JSON independiente en cada línea, mientras que un analizador JSON normal espera un solo valor de nivel superior. Valida cada línea por separado o convierte los registros en un único array JSON.

¿Importa el orden de las propiedades de un objeto?

Las aplicaciones no deberían depender del orden de las propiedades de un objeto JSON. Los arrays sí están ordenados, pero los objetos representan colecciones de miembros con nombre, y otro analizador o serializador podría emitirlos en un orden diferente. Si la secuencia tiene significado, coloca los valores en un array.

¿Por qué falla un archivo JSON si parece correcto?

Una marca de orden de bytes invisible, un UTF-8 mal formado o un carácter de control sin escapar pueden provocar que un texto aparentemente correcto no supere la validación. Al copiar contenido desde una terminal también pueden introducirse prefijos, como etiquetas de estado o marcas de tiempo. Inspecciona los bytes sin procesar o abre el archivo en un editor que pueda mostrar la codificación y los caracteres de control.

Comprobaciones finales

Antes de desplegar el JSON corregido, compara los tipos de datos además de los valores visibles, comprueba que las secuencias de escape no hayan cambiado y ejecuta la aplicación que consumirá los datos o su validación de esquema. Cuando diagnostiques datos de terceros, conserva una copia intacta de la respuesta original para evitar que el formato oculte el origen del error.

Herramientas populares