Portada de UrsaKit para la guía de formatear, validar y minificar JSON

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.

  1. 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.
  2. 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.
  3. 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.
  4. 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.
  5. 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.
  6. 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íntomaCausaSolución
Unexpected token 'Clave o texto con comillas simplesCambia a comillas dobles
Unexpected token } o ]Coma final antes del cierreBorra la coma
Unexpected token / o end of inputUn comentario // o /* */Quita el comentario; las notas van fuera del archivo
Unexpected token N o UNaN, Infinity, undefined o un identificador sueltoUsa null, un número o un texto entre comillas
Unexpected token . o +.5, +1 o 01Escribe 0.5, 1 o 1
Unexpected token \u / invalid escapeEscape desconocido o carácter de control sin escaparUsa \n, \t, \uXXXX, o pulsa Fix escapes
Unexpected end of JSON inputCuerpo truncado, a menudo por un proxy o un logVuelve a obtener la respuesta completa antes de parsear
Unexpected token \uFEFFBOM UTF-8, o comillas tipográficas pegadas desde un documentoQuita 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.

FormatoComentariosComas finalesClaves sin comillasUso típico
JSONNoNoNoAPIs, configuración, intercambio de datos
JSON5SíSíSíConfiguración escrita a mano en herramientas de build
JSONCSíNoNoAjustes de VS Code, tsconfig
YAMLSín/aSíKubernetes, pipelines de CI
TOMLSín/an/aCargo, pyproject.toml
XMLSín/an/aDocumentos, 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.

Preguntas 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.

Volver a los artículos

Artículos relacionados

Herramientas relacionadas