Formateador JSON
Formatear y embellecer datos JSON
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
| Tipo | Descripción | Ejemplo |
|---|---|---|
| String | Texto Unicode entre comillas dobles | "hello world" |
| Number | Entero o punto flotante (sin hex, sin NaN, sin Infinity) | 42, 3.14, -7 |
| Boolean | Verdadero o falso (solo minúsculas) | true, false |
| Null | Ausencia explícita de valor (solo minúsculas) | null |
Tipos estructurales
| Tipo | Descripción | Ejemplo |
|---|---|---|
| Object | Colección no ordenada de pares clave-valor | {"key": "value"} |
| Array | Lista 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:
| Error | Incorrecto | Correcto |
|---|---|---|
| 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ística | JSON | XML | YAML |
|---|---|---|---|
| Legibilidad | Buena | Verboso | Excelente |
| Tipos de datos | 6 incorporados | Solo texto (atributos + elementos) | Ricos (fechas, binario, etc.) |
| Comentarios | No soportados | Soportados (<!-- -->) | Soportados (#) |
| Validación de esquema | JSON Schema | XSD, DTD, RelaxNG | JSON Schema (reutilizado) |
| Tamaño de archivo | Compacto | Grande (las etiquetas se repiten) | El más compacto |
| Velocidad de análisis | Rápida | Moderada | Más lenta |
| Uso principal | APIs, configuraciones | Empresarial, SOAP, documentos | Configuraciones, 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.jsony 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
localStorageysessionStorage - 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
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"}} 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,}