Formateador y validador JSON

Formatea, valida y minifica JSON. Los errores de sintaxis aparecen al pegar el texto.

JSON formatter online: formatear, validar y minificar JSON en el navegador

Pega el JSON en el cuadro JSON input y se valida con cada tecla. Si es válido, debajo aparece Valid JSON y el documento formateado con la sangría que elijas, 2 spaces o 4 spaces; si no, aparece Invalid JSON con el mensaje del parser. Format reescribe el propio cuadro con la versión indentada y Minify lo deja en una sola línea. Como el análisis ocurre en tu navegador, puedes pegar respuestas de API con tokens o datos de clientes.

Formatear, validar y minificar JSON

Formatear, lo que en inglés llaman beautify o pretty print, solo añade saltos de línea y sangría para que se vea la estructura; los datos no cambian. Dos espacios es lo habitual en proyectos web y en package.json, y python3 -m json.tool usa cuatro por defecto. Minify hace lo contrario: quita todo espacio fuera de los strings y deja una sola línea, útil para pegar el JSON en un parámetro, una variable de entorno o un fixture de test.

Un ejemplo de JSON válido con todos los tipos de valor: {"nombre": "Ana", "edad": 34, "activa": true, "etiquetas": ["admin", "editor"], "direccion": {"ciudad": "Lima"}, "baja": null}. Pégalo, pulsa Format y verás el objeto direccion y el array etiquetas cada uno en su propio nivel de sangría.

La validación usa JSON.parse, el mismo parser estricto que ejecuta tu código JavaScript, así que lo que pasa aquí se analizará igual en tu aplicación. El resultado formateado sale de volver a serializar lo analizado, de modo que también te enseña cómo verá tu programa esos datos.

Como visor de JSON, formatear es la forma más rápida de entender una respuesta de API que llega en una sola línea desde la pestaña de red o desde un log. Si lo que buscas es un único valor dentro de un documento enorme, el probador de JSONPath del sitio te lo saca con una ruta como $.data.items[0].id. Con archivos de cientos de megabytes, jq . archivo.json en la terminal aguanta mejor que una pestaña del navegador.

Leer el mensaje de error

Cuando el JSON no es válido, el mensaje viene tal cual del navegador. En Chrome y Edge incluye la posición, un desplazamiento en caracteres contado desde cero, y las versiones recientes añaden la línea y la columna: {"a": 1,} da Expected double-quoted property name in JSON at position 8, y {a: 1} da Expected property name or '}' in JSON at position 1. Firefox y Safari redactan el mensaje a su manera. En todos los casos, el fallo está en esa posición o justo antes.

Un < en la posición 0 merece mención aparte: lo que has pegado es HTML, casi siempre una página de error, una redirección al login o un 404, no JSON. El problema está en la petición que devolvió eso, no en el texto.

Si vas a comparar dos respuestas JSON, formatea antes las dos con la misma sangría. Un documento minificado frente a uno indentado difiere en todas las líneas aunque los datos sean idénticos.

JSON estricto y números grandes

JSON es más estricto que un objeto de JavaScript: claves y strings van entre comillas dobles, y no admite coma final, comentarios, undefined, NaN ni funciones. Archivos como tsconfig.json o la configuración de VS Code admiten comentarios porque son JSONC, no JSON, y aquí aparecerán como Invalid JSON. Quita los comentarios o usa un parser de ese formato.

Ojo con los enteros grandes. JavaScript solo representa con exactitud hasta 9007199254740991, así que {"id": 9007199254740993} se muestra como 9007199254740992 después de formatear, sin ningún aviso. Si tus datos traen IDs de 64 bits, compruébalos en el texto original y, en tus propias API, envíalos como strings.

Frequently asked questions

¿Cómo valido un JSON online?

Pégalo en el cuadro: si es válido verás Valid JSON y el documento formateado; si no, Invalid JSON con el mensaje y la posición del error. La validación comprueba la sintaxis, no que los campos tengan los valores que espera tu aplicación, y nada se envía a un servidor.

¿Cuál es la diferencia entre formatear y minificar?

Formatear añade indentación y saltos de línea para la legibilidad; minificar elimina todo el espacio opcional para hacer la carga lo más pequeña posible. Los datos son idénticos en ambos casos.

¿Cómo valido un JSON online?

Pega el JSON en la caja de entrada: si es válido verás Valid JSON y el texto formateado; si no, Invalid JSON con el mensaje del error y su posición. Corrige ese punto y vuelve a comprobarlo.

¿Qué diferencia hay entre formatear y minificar JSON?

Format añade saltos de línea y sangría de 2 o 4 espacios para leerlo mejor. Minify quita todos los espacios innecesarios para que ocupe menos; los datos son exactamente los mismos.

¿Por qué dice Unexpected end of JSON input?

El texto se corta antes de tiempo o está vacío: falta una llave, un corchete o unas comillas de cierre. Pasa a menudo al copiar respuestas largas o al leer una respuesta HTTP sin cuerpo.

¿Mis datos se envían a algún servidor?

No. El JSON se analiza y se formatea en tu navegador, así que puedes pegar respuestas de API con tokens o datos de clientes sin que salgan de tu equipo.