Formateador JSON

Formatear y embellecer datos JSON

1
Entendiendo Formato JSON
TL;DR

JSON (JavaScript Object Notation) es el formato de intercambio de datos más común en la web. Es legible por humanos, independiente del lenguaje y soportado nativamente por todos los lenguajes de programación modernos.

¿Qué es JSON?

JSON (JavaScript Object Notation) es un formato de intercambio de datos ligero y basado en texto. A pesar de su nombre, JSON es independiente del lenguaje — es soportado nativamente por JavaScript, Python, Java, Go, Rust, C#, Ruby, PHP y prácticamente todos los demás lenguajes de programación modernos.

JSON se derivó de la sintaxis literal de objetos de JavaScript, pero es estrictamente un formato de datos — no un lenguaje de programación. Fue formalizado por Douglas Crockford a principios de los 2000 como una alternativa más simple que XML para transmitir datos estructurados entre un servidor y una aplicación web. Hoy, JSON es el formato dominante para APIs REST, archivos de configuración y almacenamiento de datos en bases de datos documentales como MongoDB y CouchDB.

Tipos de datos JSON

JSON soporta exactamente seis tipos de datos organizados en dos estructuras:

Tipos primitivos

TipoDescripciónEjemplo
StringTexto Unicode entre comillas dobles"hello world"
NumberEntero o punto flotante (sin hex, sin NaN, sin Infinity)42, 3.14, -7
BooleanVerdadero o falso (solo minúsculas)true, false
NullAusencia explícita de valor (solo minúsculas)null

Tipos estructurales

TipoDescripciónEjemplo
ObjectColección no ordenada de pares clave-valor{"key": "value"}
ArrayLista ordenada de valores[1, 2, 3]

Los objetos y arreglos pueden anidarse a cualquier profundidad, y los valores dentro de ellos pueden ser cualquiera de los seis tipos JSON. Esta estructura recursiva simple es lo que hace a JSON tan versátil.

Errores comunes de JSON

La simplicidad de JSON también significa que su analizador es estricto. Estos son los errores más frecuentes:

ErrorIncorrectoCorrecto
Claves con comillas simples{'name': 'Alice'}{"name": "Alice"}
Claves sin comillas{name: "Alice"}{"name": "Alice"}
Coma final{"a": 1, "b": 2,}{"a": 1, "b": 2}
Cadenas con comillas simples{"name": 'Alice'}{"name": "Alice"}
Comentarios{"a": 1} // comment{"a": 1}
Undefined{"a": undefined}{"a": null}

JSON no soporta comentarios, comas finales, comillas simples ni undefined. Todos estos son válidos en JavaScript pero están prohibidos en JSON. Si necesitas comentarios en archivos de configuración, considera JSON5 o JSONC (JSON con Comentarios), que extienden el formato con estas comodidades.

JSON vs XML vs YAML

CaracterísticaJSONXMLYAML
LegibilidadBuenaVerbosoExcelente
Tipos de datos6 incorporadosSolo texto (atributos + elementos)Ricos (fechas, binario, etc.)
ComentariosNo soportadosSoportados (<!-- -->)Soportados (#)
Validación de esquemaJSON SchemaXSD, DTD, RelaxNGJSON Schema (reutilizado)
Tamaño de archivoCompactoGrande (las etiquetas se repiten)El más compacto
Velocidad de análisisRápidaModeradaMás lenta
Uso principalAPIs, configuracionesEmpresarial, SOAP, documentosConfiguraciones, DevOps

JSON logra un equilibrio entre legibilidad humana y eficiencia para máquinas. XML es más expresivo (con atributos, espacios de nombres y contenido mixto) pero significativamente más verboso. YAML es el más amigable para humanos, pero su sintaxis basada en indentación puede ser propensa a errores, y su analizador es más complejo.

Para APIs web, JSON ha ganado de forma decisiva. Para archivos de configuración, YAML es popular en el ecosistema DevOps (Kubernetes, Docker Compose, GitHub Actions). XML sigue siendo dominante en sistemas empresariales, servicios SOAP y formatos de documentos.

Casos de uso comunes

  • APIs REST: JSON es el formato de solicitud y respuesta predeterminado para prácticamente todas las APIs REST modernas
  • Archivos de configuración: package.json, tsconfig.json, .eslintrc.json y muchas otras herramientas usan JSON para configuración
  • Bases de datos documentales: MongoDB, CouchDB y DynamoDB almacenan documentos como JSON (o BSON)
  • Intercambio de datos: Los microservicios se comunican usando JSON sobre HTTP, WebSocket o colas de mensajes
  • Almacenamiento local: Los navegadores serializan objetos JavaScript a JSON para localStorage y sessionStorage
  • Registro de logs: Los sistemas de logging estructurado (stack ELK, Datadog) consumen entradas de log en formato JSON para análisis e indexación

Prueba estos ejemplos

Objeto JSON válido con arreglo anidado Válido

Un objeto JSON válido que contiene una cadena, un número, un arreglo de cadenas y un objeto anidado. Todas las claves están entre comillas dobles y los valores usan los tipos de datos JSON correctos.

{"name": "Alice", "age": 30, "roles": ["admin", "editor"], "address": {"city": "Paris", "zip": "75001"}}
JSON inválido — Coma final Inválido

Inválido porque JSON no permite comas finales después de la última propiedad. Este es el error de sintaxis JSON más común — JavaScript lo permite, pero JSON no.

{"name": "Alice", "age": 30,}