
En resumen
Formatea, valida y minifica JSON en el navegador: las reglas de sintaxis que rompen el parser y cómo depurar una respuesta de API que falla.
JSON es el formato por defecto de las respuestas de API, los archivos de configuración y las exportaciones de logs, y normalmente te lo encuentras como una sola línea ilegible. Esta guía cubre las tres tareas que la gente realmente necesita —formatearlo para que una persona lo lea, validarlo para atrapar un error antes de publicarlo y minificarlo para que el payload siga siendo pequeño— además de las reglas de sintaxis que explican por qué un parser sigue rechazando tu archivo.
Todos los pasos se ejecutan en el espacio de trabajo JSON de UrsaKit y enteramente en tu navegador, así que puedes pegar payloads reales mientras depuras. Nada se sube.
01Qué permite realmente JSON
JSON está definido por RFC 8259 y ECMA-404. Es deliberadamente un lenguaje más pequeño que un literal de objeto de JavaScript, y esa es la causa de casi todas las sorpresas cuando un archivo «parece estar bien» pero no se deja parsear.
Las reglas que vale la pena memorizar:
- Las claves y los valores de texto deben usar comillas dobles. name: y 'name' son ambos inválidos.
- Nada de comas finales: [1, 2,] y {"a": 1,} son errores de sintaxis.
- Nada de comentarios. // y /* */ no forman parte de JSON, aunque el archivo parezca JavaScript. Si un archivo necesita comentarios de verdad, es JSONC o YAML: conviértelo con JSON a YAML en lugar de forzarlo por un parser JSON.
- Los valores se limitan a objeto, array, texto, número, true, false y null. NaN, Infinity y undefined no son válidos.
- Los números no pueden llevar un + inicial ni un punto decimal suelto: escribe 0.5, no .5.
- Un BOM UTF-8 al principio hace fallar a los parsers estrictos: el primer carácter debe ser { o [.
02Formatear, validar y minificar JSON
El espacio de trabajo tiene un solo editor y un conmutador de capacidades, así que los mismos tres pasos cubren formatear, validar y minificar.
- Pega o arrastra tu JSON — Pega el payload en el editor de la izquierda o sube un archivo .json. El espacio de trabajo parsea mientras escribes y la barra de estado muestra «válido» o la línea y columna exactas del primer error.
- Corrige lo que señala la barra de estado — Haz clic en la posición indicada para saltar a la línea problemática. Si el documento tiene secuencias de escape inválidas o caracteres de control sin escapar, pulsa Fix escapes para repararlos en el sitio.
- Elige 2 o 4 espacios y formatea — Pulsa Beautify para reindentar el documento, la misma operación que el formateador JSON independiente. Dos espacios es la convención habitual en configuración; cuatro coincide con muchos editores. Sort keys reordena las claves alfabéticamente, útil antes de un diff.
- Minifica cuando el payload se envía — Pulsa Minify para quitar todo el espacio y los saltos de línea irrelevantes, el mismo comportamiento que el minificador JSON dedicado. El documento no cambia salvo por el espacio en blanco: claves, valores, precisión y orden se mantienen.
- Inspecciona en lugar de editar — Cambia de capacidad para otras tareas: Visual dibuja un árbol plegable, las consultas JSONPath usan expresiones $, Convert emite YAML / XML / CSV / TypeScript, Schema deriva un JSON Schema y JWT decodifica un token.
- Copia o descarga el resultado — Copy manda la salida actual al portapapeles y Download la guarda como archivo. Como el parseo es local, ninguna de las dos acciones toca la red.
03Antes y después
Una respuesta de API minificada convertida en algo legible, y las dos ediciones que arreglan la mayoría de los documentos inválidos.
Respuesta minificada → legible
Entrada
{"id":42,"user":{"name":"Ada","roles":["admin","billing"],"active":true},"meta":{"page":1,"total":128}}
Salida
{
"id": 42,
"user": {
"name": "Ada",
"roles": [
"admin",
"billing"
],
"active": true
},
"meta": {
"page": 1,
"total": 128
}
}
Coma final → inválido
Entrada
{
"name": "Ada",
"roles": [
"admin",
]
}
Salida
Unexpected token } in JSON
→ line 5, column 3 (the comma after "admin")
Borra la coma final y vuelve a validar. El mismo arreglo se aplica a los objetos: nada de comas antes de } o ].
Minificar para el transporte
Entrada
{
"timeout": 30,
"retries": 3,
"region": "eu-west-1"
}
Salida
{"timeout":30,"retries":3,"region":"eu-west-1"}
El espacio en blanco suele ser el 40–70% de un documento embellecido, así que minificar es la victoria más barata que existe sobre el tamaño del payload.
Una coma final es la causa más habitual
JSON no permite coma antes de
}ni de]. Si un payload funciona en la consola del navegador como literal de JavaScript pero falla al validar, casi siempre es por este carácter.
04Los errores de sintaxis que más verás
Casi todos los informes de «JSON inválido» son una de estas siete causas.
| Síntoma | Causa | Solución |
|---|---|---|
| Unexpected token ' | Clave o texto con comillas simples | Cambia a comillas dobles |
| Unexpected token } o ] | Coma final antes del cierre | Borra la coma |
| Unexpected token / o end of input | Un comentario // o /* */ | Quita el comentario; las notas van fuera del archivo |
| Unexpected token N o U | NaN, Infinity, undefined o un identificador suelto | Usa null, un número o un texto entre comillas |
| Unexpected token . o + | .5, +1 o 01 | Escribe 0.5, 1 o 1 |
| Unexpected token \u / invalid escape | Escape desconocido o carácter de control sin escapar | Usa \n, \t, \uXXXX, o pulsa Fix escapes |
| Unexpected end of JSON input | Cuerpo truncado, a menudo por un proxy o un log | Vuelve a obtener la respuesta completa antes de parsear |
| Unexpected token \uFEFF | BOM UTF-8, o comillas tipográficas pegadas desde un documento | Quita el BOM y reescribe las comillas en ASCII |
05JSON y los formatos con los que se confunde
Si un archivo tiene comentarios o claves sin comillas no es JSON: es uno de estos, y la distinción importa para elegir el parser. Cuando necesites pasar de uno a otro, convierte con JSON a YAML o JSON a CSV.
| Formato | Comentarios | Comas finales | Claves sin comillas | Uso típico |
|---|---|---|---|---|
| JSON | No | No | No | APIs, configuración, intercambio de datos |
| JSON5 | Sí | Sí | Sí | Configuración escrita a mano en herramientas de build |
| JSONC | Sí | No | No | Ajustes de VS Code, tsconfig |
| YAML | Sí | n/a | Sí | Kubernetes, pipelines de CI |
| TOML | Sí | n/a | n/a | Cargo, pyproject.toml |
| XML | Sí | n/a | n/a | Documentos, SOAP, integraciones heredadas |
06Depurar una respuesta de API que falla
El flujo más rápido es: copia el cuerpo crudo de la respuesta, anota la línea y la columna que reporta el validador JSON, corrige, vuelve a validar y por último formatea. Copia la respuesta como texto y no como objeto ya parseado: la vista previa de objetos del navegador esconde la sintaxis exacta y te mostrará encantada un objeto «limpio» que nunca existió en la red.
Cuando una respuesta es muy grande y el espacio de trabajo se siente lento, eso es coste de parseo y renderizado del navegador, no un viaje de red. Divide payloads de más de unos 10 MB o usa JSONPath para extraer solo la rama que necesitas en lugar de dibujar el documento entero.
Nota: el orden de las claves se conserva Por especificación los objetos JSON no tienen orden, pero el espacio de trabajo mantiene el original salvo que actives Sort keys.
Consejo: formatea antes de comparar Dos payloads que solo difieren en la sangría producen un diff ruidoso. Formatea ambos lados primero, o activa Ignore whitespace en el diff checker.
Aviso: no se sube nada Formatear, minificar, validar, convertir y generar esquemas se ejecuta localmente en la pestaña. Tu payload nunca sale del dispositivo.
Formatea, minifica, valida, visualiza, consulta, convierte y genera esquemas en un solo espacio de trabajo.
Suite JSONPreguntas frecuentes
¿Formatear cambia mis datos?
No. Formatear solo cambia el espacio en blanco entre tokens. Las claves, los valores, la precisión numérica y el orden de los arrays quedan intactos.
¿Cuál es la diferencia entre formatear y minificar?
Formatear añade sangría y saltos de línea para que una persona lo lea; minificar elimina todo el espacio en blanco irrelevante para que el payload sea lo más pequeño posible. Son operaciones inversas.
¿Por qué mi JSON funciona en JavaScript pero falla la validación?
Los literales de objeto de JavaScript permiten comillas simples, comas finales y comentarios; JSON no. Un literal que se ejecuta en la consola del navegador puede seguir siendo JSON inválido en la red.
¿Puedo validar JSON con comentarios?
No como JSON. Quita antes los comentarios, o trata el archivo como JSONC o JSON5: esos formatos aceptan comentarios pero no son JSON válido.
¿Qué tamaño de documento puedo validar?
No hay límite de subida porque todo es local, pero los documentos de más de unos 10 MB vuelven lento el editor. Divídelos o consulta una rama con JSONPath.
¿Mi payload se envía a un servidor?
No. Todo el parseo, formateo y renderizado ocurre en tu navegador.
Artículos relacionados
- Comparar dos textos con un diff checker
Detecta exactamente qué cambió entre dos payloads o archivos de configuración.
- Crear un código QR que se escanee siempre
Corrección de errores, zona de silencio y tamaño de impresión.
Herramientas relacionadas
- Formateador JSON
Embellece con 2 o 4 espacios.
- Minificador JSON
Elimina espacios para el transporte.
- Validador JSON
Indica línea y columna del error.
- Parser y árbol JSON
Explora estructuras anidadas.
- Probador de JSONPath
Consulta payloads con expresiones $.
- Decodificador JWT
Decodifica e inspecciona JSON Web Tokens.