JSON

Formatear JSON online, validarlo y explorarlo

Pega tu JSON y ve el resultado formateado al momento. Si algo falla, te decimos en qué línea y columna y qué se esperaba encontrar ahí. Con vista de árbol, buscador y conversión a YAML.

Cero subidas · todo en tu navegador

Tu JSON no sale de tu equipo: se analiza, se formatea y se convierte aquí dentro.

Por qué importa que tu JSON no se suba

Lo que se pega en un formateador casi nunca es un ejemplo de manual: es la respuesta de una API de producción con datos reales de clientes, un volcado de configuración con credenciales dentro o el cuerpo de un webhook que estás depurando a las once de la noche. Enviar eso al servidor de una web cualquiera para que te lo ponga bonito es regalar información que en tu empresa está detrás de tres capas de permisos. Aquí no hay a dónde enviarlo: el texto se analiza en tu pestaña y no sale de ahí.

Cómo funciona, en 3 pasos

  1. Pega el JSON

    O suelta el archivo encima. También acepta YAML y JSON Lines: se cambia en el selector de la izquierda, y si te equivocas de formato la herramienta lo detecta y te lo ofrece.

  2. Míralo como te convenga

    Formateado con el sangrado que uses, en árbol plegable para navegar uno grande, o convertido a YAML o JSON Lines.

  3. Cópialo o descárgalo

    Si hay un error de sintaxis, primero te lo señalamos con línea, columna y una explicación de qué falta ahí.

Para qué la usa la gente

Validar JSON y saber dónde está el fallo, no solo que lo hay

Casi todos los validadores dicen lo mismo que te dijo la consola: Unexpected token } in JSON at position 1847. Esa posición es un desplazamiento en caracteres, así que para usarla hay que contar. Y «token inesperado» describe el síntoma, no la causa: el } no molesta a nadie, lo que sobra es la coma de la línea anterior.

Por eso esta herramienta no usa JSON.parse por dentro. Lleva su propio analizador, que recorre el texto sabiendo en todo momento qué está esperando encontrar, y cuando algo no encaja informa de la línea, la columna y qué debería haber ahí. Si la coma sobra, lo dice. Si son comillas simples, lo dice. Si has pegado True de Python, te recuerda que en JSON va en minúsculas. Y hay un botón para saltar directamente al punto exacto del texto.

Ese analizador propio trae dos ventajas más que se notan con datos de verdad. La primera: conserva el orden real de las claves. Si lo pasaras por un objeto de JavaScript, las claves que parecen enteros —"1", "2", "10"— se reordenarían solas por delante de las demás, y el JSON que te devuelve ya no sería el que pegaste. La segunda: conserva el texto original de los números. Un identificador de veinte dígitos pierde precisión en cuanto pasa por un número de JavaScript, y 12345678901234567890 vuelve convertido en 12345678901234567000. Aquí embellecer y minificar no le tocan ni un dígito.

La vista de árbol es para los JSON que no caben en la cabeza

Formatear un JSON de cuarenta líneas ya lo hace tu editor. El problema aparece con los de mil, cuatro mil o cuarenta mil líneas: aunque estén perfectamente sangrados, para encontrar una cosa hay que hacer scroll sin parar y perder el hilo de dónde estás.

En la vista de árbol cada rama se pliega, y cada rama dice de qué tipo es y cuántos elementos lleva dentro antes de abrirla. Así se ve la forma del documento —«esto es una lista de 1.200 pedidos, cada uno con 14 campos»— sin abrir nada. El buscador filtra por clave o por valor y deja a la vista solo las ramas que llevan a una coincidencia, con el número de aciertos.

Está construido para aguantar: las ramas no existen en la página hasta que las despliegas, así que abrir un archivo grande es instantáneo aunque tenga cientos de miles de nodos. Y en los niveles con muchísimos hijos se muestran los primeros doscientos con un botón para traer más, en vez de bloquear la pestaña.

De JSON a YAML, y de YAML a JSON

Quien formatea JSON acaba necesitando YAML a los cinco minutos, porque las configuraciones de Kubernetes, los pipelines de CI y los compose viven en YAML mientras que las APIs hablan JSON. La conversión va en los dos sentidos: la pestaña de YAML convierte lo que tengas, y cambiando el formato de entrada a YAML puedes pegar YAML y ver el JSON equivalente.

Lo delicado de generar YAML es el entrecomillado, y ahí es donde fallan muchos conversores. En YAML, yes, no, on y off sin comillas se convierten en booleanos; 007 se convierte en el número 7; 2026-01-01 se convierte en una fecha; y null deja de ser el texto «null». Aquí todo eso se entrecomilla para que el valor siga siendo exactamente el que era, y la salida está comprobada volviéndola a leer con un analizador de YAML de verdad.

Los límites, dichos antes de que fallen

Al soltar un archivo, el tope son 8 MB. El análisis aguanta bastante más, pero por encima de unas 6000 líneas de salida se desactivan el resaltado y la numeración y se muestra texto plano: pintar un elemento por línea con decenas de miles de líneas atasca cualquier navegador, y es mejor decirlo que quedarse colgado. La vista de árbol no sufre eso porque solo construye lo que abres. El anidamiento se corta a los 200 niveles, que en la práctica solo se alcanza por error.

Si lo que tienes en realidad es un CSV o una hoja de cálculo y lo que buscas son sentencias SQL, eso lo hace el conversor de CSV a SQL, que también trabaja sin subir nada.

Y si lo que quieres es ver qué ha cambiado entre dos versiones de un JSON, formatea las dos con el mismo sangrado y pásalas por el comparador de textos: con el sangrado igualado, las diferencias que salen son las de verdad y no las de dos maneras distintas de escribir lo mismo.

Y si lo que necesitas es sacar unos cuantos valores de un volcado enorme sin escribir código, a veces sale más a cuenta una expresión regular: el probador de regex te la deja afinar sobre el texto real y además te explica qué hace cada trozo.

Preguntas frecuentes

¿Por qué me da error si la coma final me la acepta el editor?

Porque JavaScript sí admite la coma final y JSON no la ha admitido nunca. El último elemento de un objeto o de una lista no lleva coma detrás.

Tu editor te la deja escribir porque está pensando en un archivo .js, y Python o Node te la perdonan al pegarla en el código. Pero en cuanto ese texto viaja como JSON de verdad, cualquier parser lo rechaza. Es, con diferencia, el error más frecuente.

¿Puedo usar comillas simples en JSON?

No. JSON solo entiende comillas dobles, tanto en las claves como en los valores de texto.

Las simples son válidas en JavaScript y en Python, y por eso el error aparece casi siempre al copiar un diccionario de Python o un objeto literal de JavaScript y llamarlo JSON. Con las comillas invertidas pasa lo mismo: son de JavaScript.

¿Por qué las claves tienen que ir entre comillas?

Porque en JSON una clave es siempre una cadena, y las cadenas van entre comillas dobles. En JavaScript se pueden escribir sin comillas cuando son identificadores válidos, y ese atajo es el que se cuela al copiar código.

Si la clave lleva un guion o un espacio, la diferencia salta a la vista; si es una palabra normal, el error sorprende, pero la regla es la misma.

¿Y los comentarios?

JSON no admite comentarios, ni // ni /* */. Douglas Crockford los quitó a propósito para que nadie los usara como directivas de análisis.

Si los tuyos vienen de un tsconfig.json o de un settings.json de VS Code, eso es JSONC —JSON con comentarios—, un dialecto que entienden esas herramientas y casi nadie más. Hay que quitarlos antes de tratarlo como JSON.

¿Se sube mi JSON a algún servidor?

No. El análisis, el formateo, el árbol y la conversión ocurren en tu navegador. No hay cuentas ni base de datos. Carga la página, desconecta internet y compruébalo: sigue funcionando igual.

¿Qué diferencia hay entre JSON y JSON Lines?

Un archivo JSON es un único documento. En JSON Lines cada línea es un documento completo e independiente, sin comas ni corchetes que los envuelvan.

Se usa para registros y exportaciones grandes: se puede leer línea a línea sin cargar el archivo entero en memoria, y añadir un registro es escribir una línea al final. La herramienta lee y escribe los dos.

¿Por qué mi número aparece distinto tras formatearlo?

Aquí no debería. En JavaScript los números son de doble precisión, así que un identificador de más de dieciséis dígitos se redondea: 12345678901234567890 acaba como 12345678901234567000.

Esta herramienta guarda el texto original de cada número, así que embellecer o minificar no le cambia ni un dígito. Si otra herramienta te ha alterado un identificador largo, ese es el motivo.

¿Qué pasa si una clave está repetida?

Técnicamente es válido: la especificación no lo prohíbe, solo dice que el comportamiento queda indefinido. En la práctica casi todos los parsers se quedan con la última y descartan la anterior en silencio, que es la peor forma de perder un dato.

Por eso aquí se avisa con la clave y la línea en vez de dejarlo pasar.

¿Hay algún límite de tamaño?

Al soltar un archivo, 8 MB. Por encima de unas 6000 líneas de salida se desactivan el resaltado y la numeración y se muestra texto plano, porque pintar un elemento por línea con decenas de miles de líneas atasca el navegador. El árbol no tiene ese problema: solo construye las ramas que abres.

Herramientas relacionadas