BrowserTools
Publicidad
Inicio / Validadores / Validador y Formateador JSON

Validador y Formateador JSON

Valida, formatea y minifica JSON en tu navegador con ubicaciones de error detalladas.

Cargando Validador y Formateador JSON… Si no ocurre nada, activa JavaScript.

JSON (JavaScript Object Notation) es un formato de intercambio de datos ligero y legible por humanos, basado en un subconjunto de la sintaxis de JavaScript. Lo popularizó Douglas Crockford a principios de los 2000 como una alternativa más sencilla a XML para intercambiar datos entre clientes y servidores web. Estandarizado como RFC 4627 en 2006 y más tarde como ECMA-404 y RFC 8259, JSON se ha convertido en el lenguaje universal de las API web, los archivos de configuración y el almacenamiento de datos. Sus seis tipos de valor (cadena, número, booleano, null, array y objeto) se corresponden limpiamente con las estructuras de datos de prácticamente todos los lenguajes de programación.

Ejemplos

Entrada {"name":"Ada","age":36}
Salida Valid · object with 2 keys
Entrada {'name': 'Ada'}
Salida Invalid · property names must use double quotes

JSON es más estricto que un literal de objeto de JavaScript: sin comillas simples, sin comas finales.

Preguntas frecuentes

¿Se envía mi JSON a un servidor?
No. El análisis y el formateo ocurren enteramente en tu navegador usando las funciones nativas JSON.parse y JSON.stringify integradas en el motor de JavaScript. Tus datos nunca salen de tu dispositivo, lo que hace seguro usar esta herramienta con respuestas de API, exportaciones de bases de datos o cualquier carga JSON confidencial.
¿Cuáles son las reglas exactas que hacen válido un JSON?
JSON tiene una gramática estricta definida por el RFC 8259 y ECMA-404. Las claves deben ser cadenas entre comillas dobles. Los valores de cadena deben usar comillas dobles, no simples. Las comas finales después del último elemento de un objeto o array están prohibidas. No se permiten comentarios. Los números no pueden tener ceros a la izquierda ni un punto decimal final. El documento debe contener exactamente un valor de nivel superior (un objeto, array, cadena, número, booleano o null).
¿Cuál es la diferencia entre formatear y minificar JSON?
Formatear (también llamado embellecer) añade saltos de línea y sangría para que la estructura sea visualmente clara y fácil de leer para las personas. Minificar elimina todo el espacio en blanco innecesario (espacios, tabulaciones y saltos de línea) para producir la cadena JSON válida más compacta. El JSON minificado se usa en respuestas de API de producción y archivos de configuración donde cada byte de ancho de banda o almacenamiento importa; el JSON formateado se usa en el control de versiones, la documentación y la depuración.
¿En qué se diferencia JSON de la sintaxis de literal de objeto de JavaScript?
JSON es un subconjunto estricto de la sintaxis de valores de JavaScript, pero no son idénticos. JSON requiere claves y valores de cadena entre comillas dobles; los literales de objeto de JavaScript permiten claves sin comillas o entre comillas simples. JSON prohíbe las comas finales, los comentarios, los valores undefined, las funciones y las claves de tipo símbolo, todos válidos en JavaScript. JSON.parse es deliberadamente estricto con estas reglas para que el JSON pueda analizarse de forma segura desde sistemas que no sean JavaScript.
¿Qué tamaño de JSON puedo validar y formatear?
La herramienta acepta JSON de cualquier tamaño, pero existen límites prácticos. Las cargas de hasta varios megabytes se analizan y formatean en milisegundos. Los documentos muy grandes (decenas de megabytes o más) pueden causar retrasos perceptibles o presión de memoria en la pestaña del navegador. Para procesar archivos JSON extremadamente grandes (registros de servidor, exportaciones de datos), las herramientas de línea de comandos como jq son más apropiadas.
¿El validador admite JSON5 o JSONC (JSON con comentarios)?
No. Esta herramienta usa la gramática JSON estricta definida por el RFC 8259, que prohíbe los comentarios y las comas finales. JSON5 y JSONC son extensiones no oficiales que permiten estas características. Muchos formatos de archivos de configuración (el tsconfig.json de TypeScript, los ajustes de VS Code) usan JSONC, pero se analizan con analizadores especializados más permisivos que el JSON.parse estándar. Si tu entrada usa estas extensiones, necesitas un analizador JSONC o JSON5.
¿Puedo usar esto para formatear JSON dentro de una cadena (JSON escapado)?
Si tienes una cadena JSON incrustada dentro de otra cadena JSON, con sus comillas internas escapadas como \", primero tendrás que decodificar el JSON exterior para extraer la cadena interna, y luego analizarla y formatearla por separado. Un escenario común son los mensajes de error de API que incluyen una carga JSON en crudo como valor de cadena. Puedes pegar todo el documento exterior, copiar el valor de cadena escapado y pegarlo para una segunda pasada de formateo.
¿Es JSON lo mismo que BSON o MessagePack?
No. JSON es un formato de texto; BSON (JSON binario) y MessagePack son formatos de serialización binaria que codifican los mismos tipos de datos lógicos que JSON, pero en una representación binaria compacta en lugar de texto UTF-8. BSON lo usa internamente MongoDB y admite tipos adicionales como fechas y datos binarios. MessagePack se usa para la comunicación de alto rendimiento entre servicios. Una herramienta JSON no puede analizar BSON ni MessagePack directamente.
¿Por qué el mensaje de error solo muestra el primer error?
JSON.parse se detiene en el primer error de sintaxis que encuentra, porque los tokens posteriores pueden ser inanalizables en su contexto: corregir el primer error podría hacer válido el resto del documento o revelar errores completamente distintos. Es el mismo comportamiento que el de la mayoría de los analizadores JSON. Corrige el error indicado y vuelve a validar; si hay más errores, aparecerán de uno en uno.
¿Cuál es un error común que invalida el JSON?
El error más frecuente es una coma final después de la última propiedad de un objeto o el último elemento de un array, por ejemplo, {"a": 1,} o [1, 2, 3,]. Esto es válido en JavaScript y en muchos formatos de configuración, pero está explícitamente prohibido en JSON. Otros errores comunes incluyen usar comillas simples para las cadenas, añadir un comentario // y olvidar poner comillas en los nombres de las propiedades. El mensaje de error de JSON.parse señalará la posición exacta del carácter donde falló el análisis.

Acerca de Validador y Formateador JSON

JSON es ineludible en el desarrollo moderno. Las API REST devuelven respuestas JSON. Los archivos de configuración de herramientas como ESLint, TypeScript y npm usan JSON. Las bases de datos NoSQL como MongoDB almacenan documentos como BSON (JSON binario). Las cargas útiles de eventos de funciones serverless son objetos JSON. Los desarrolladores necesitan habitualmente inspeccionar, formatear o validar JSON procedente de respuestas de API, exportaciones de bases de datos, archivos de registro, cargas de webhooks y plantillas de configuración. Una sola coma fuera de lugar o un corchete sin pareja invalida todo el documento, y el JSON minificado en crudo de una API de producción es casi imposible de leer sin formatearlo.

Este validador y formateador de JSON analiza tu entrada localmente en el navegador usando la función nativa JSON.parse, el mismo analizador que usa cada entorno de ejecución de JavaScript. Resalta la línea y columna exactas de cualquier error de sintaxis para que puedas encontrar y corregir los problemas de inmediato. Una vez válido, la herramienta imprime el JSON con sangría configurable para mejorar la legibilidad, o lo minifica eliminando todo el espacio en blanco innecesario para reducir el tamaño de la carga. Como todo se ejecuta en tu navegador, tus datos JSON, que pueden contener claves de API, registros de usuarios o datos comerciales confidenciales, nunca se envían a ningún servidor.

Los errores comunes de JSON incluyen comas finales después del último elemento de un array u objeto (válidas en JavaScript pero prohibidas en JSON), cadenas entre comillas simples (JSON requiere comillas dobles) y comentarios (JSON no tiene sintaxis de comentarios, a diferencia de JSONC o JSON5). Los números con ceros a la izquierda (como 007) también son inválidos. Si trabajas con un formato que amplía JSON con estas características, necesitarás un analizador JSONC o JSON5; el JSON.parse estándar los rechazará.

Cómo JSON conquistó la web

JSON fue creado y popularizado por Douglas Crockford, que registró el dominio json.org en 2001 y empezó a defender JSON como una alternativa ligera a XML para el intercambio de datos con AJAX. La idea clave de Crockford fue que la sintaxis de literales de objeto y array de JavaScript ya era un formato de datos válido; solo necesitaba ser documentada, restringida a tipos seguros y promovida. Afirmó célebremente que «descubrió» JSON en lugar de inventarlo, señalando que la sintaxis ya estaba latente en el propio JavaScript.

A pesar de su sencillez, el camino de JSON hacia la estandarización fue sorprendentemente polémico. Crockford lo publicó inicialmente bajo una licencia que incluía la frase «El software se usará para el Bien, no para el Mal», lo que hizo que algunas organizaciones de código abierto lo clasificaran como no libre. Cuando ECMA formalizó JSON como ECMA-404 en 2013 y el IETF publicó el RFC 8259 en 2017, usaron una licencia limpia, pero Crockford mantuvo la cláusula «el Bien, no el Mal» en la especificación original de json.org, creando una nota a pie de página persistente (y algo humorística) sobre licencias en la historia de los estándares web.

Hoy, JSON es posiblemente el formato de datos más analizado que existe. Todos los lenguajes de programación importantes incluyen un analizador JSON en su biblioteca estándar. Las API REST, las respuestas GraphQL, las bases de datos NoSQL, los archivos de configuración, los sistemas de agregación de registros y los buses de eventos serverless usan JSON como formato nativo. La ironía es que JSON, diseñado para ser más sencillo que XML, se ha vuelto tan omnipresente que a su alrededor han crecido ecosistemas enteros de formatos cercanos a JSON (JSON5, JSONC, NDJSON, JSON Schema, JSON Pointer, JSON Patch) para abordar sus limitaciones.

Publicidad
Publicidad
Publicidad