JSON
Entendiendo el Formato JSON: Una Guía para Desarrolladores
5 min read
Entendiendo el Formato JSON: Una Guía para Desarrolladores
Si has pasado más de unos pocos días aprendiendo sobre desarrollo web, programación o APIs, sin duda te has encontrado con JSON. Es la columna vertebral absoluta de la comunicación moderna en Internet. Cada vez que una aplicación móvil obtiene el clima, un navegador carga tu feed de redes sociales o un dispositivo doméstico inteligente informa la temperatura, es casi seguro que esos datos se transmitan en formato JSON.
Pero, ¿qué es exactamente JSON? ¿Por qué se volvió tan increíblemente popular? Y lo más importante, ¿cómo se lee, escribe y manipula sin romper tus aplicaciones?
En esta guía completa, exploraremos los orígenes de JSON, desglosaremos sus reglas de sintaxis exactas, analizaremos los tipos de datos compatibles y explicaremos por qué reemplazó por completo a formatos más antiguos como XML.
¿Qué es JSON?
JSON significa JavaScript Object Notation (Notación de Objetos de JavaScript).
En su esencia, JSON es un formato de intercambio de datos ligero y basado en texto. Está diseñado para ser fácil de leer y escribir para los humanos, y fácil de analizar y generar para las máquinas.
A pesar de que su nombre contiene "JavaScript", JSON es completamente independiente del lenguaje. Inicialmente se derivó de JavaScript, pero hoy en día, todos los lenguajes de programación principales (Python, Java, C#, Go, Ruby, PHP) tienen código incorporado para analizar (parsear) y generar datos JSON.
El propósito principal de JSON es transmitir datos entre un servidor y una aplicación web (por ejemplo, enviar datos del perfil de usuario desde una base de datos backend a una aplicación frontend en React).
Las Reglas de Sintaxis de JSON
JSON es famoso por ser estricto. Una sola coma faltante o unas comillas mal ubicadas darán como resultado un error de análisis (el temido SyntaxError: Unexpected token). Entender las reglas es fundamental.
Un archivo JSON se basa fundamentalmente en dos estructuras:
- Objetos (Objects): Una colección de pares clave-valor (key-value) encerrados entre llaves
{}. - Matrices (Arrays): Una lista ordenada de valores encerrados entre corchetes
[].
Aquí hay un ejemplo de un documento JSON completo y válido que representa un perfil de usuario:
{
"id": 1045,
"username": "tech_guru_99",
"isActive": true,
"email": null,
"roles": ["admin", "editor"],
"profile": {
"firstName": "Alice",
"lastName": "Smith",
"age": 28
}
}
Desglosemos las reglas de oro para escribir un JSON válido:
1. Los datos están en pares Nombre/Valor
Un par nombre/valor (también llamado par clave-valor) consta de un nombre de campo (entre comillas dobles), seguido de dos puntos, seguido de un valor.
"username": "tech_guru_99"
2. Las claves DEBEN estar entre comillas dobles
En JavaScript, puedes escribir la clave de un objeto sin comillas (por ejemplo, username: "tech_guru_99"). En JSON, esto es ilegal. Cada clave debe estar envuelta en comillas dobles "". Las comillas simples '' también están estrictamente prohibidas.
3. Los datos están separados por comas
Cada par en un objeto, y cada valor en un array, debe estar separado por una coma. Sin embargo, las comas finales (trailing commas) no están permitidas. No puedes colocar una coma después del último elemento de una lista u objeto.
JSON Inválido (Coma Final):
{
"name": "Alice",
"age": 28,
}
4. No se permiten comentarios
A diferencia de YAML o los archivos de código estándar, JSON no admite comentarios (// o /* */). Si intentas agregar un comentario a un archivo JSON estándar, el analizador (parser) fallará. JSON está destinado estrictamente a los datos, no a los metadatos o anotaciones.
Tipos de Datos Soportados
JSON solo admite seis tipos de datos fundamentales. No puedes poner una función, un objeto de fecha (Date) o un valor indefinido (undefined) directamente en JSON.
- Cadena (String): Texto encerrado entre comillas dobles.
"city": "Madrid"
- Número (Number): Un número entero o de punto flotante (sin comillas).
"age": 30,"pi": 3.14159
- Booleano (Boolean):
trueofalse(sin comillas, todo en minúsculas)."isSubscribed": true
- Matriz (Array): Una lista ordenada de valores encerrada entre corchetes.
"colors": ["red", "green", "blue"]
- Objeto (Object): Un mapeo anidado de clave-valor encerrado entre llaves.
"address": { "street": "Gran Via" }
- Null: Representa un valor vacío o ausente (en minúsculas).
"middleName": null
Nota sobre las fechas: Dado que JSON no tiene un tipo de Fecha (Date) nativo, las fechas generalmente se convierten en cadenas estándar ISO 8601 (por ejemplo, "2026-09-19T14:30:00Z") o en marcas de tiempo numéricas de Unix antes de almacenarse en JSON.
JSON vs. XML: El Punto de Inflexión de la Web
Para apreciar verdaderamente a JSON, debes mirar lo que vino antes: XML (eXtensible Markup Language).
A principios de la década de 2000, XML era el estándar para la transferencia de datos. Veamos cómo se escribiría nuestro perfil de usuario anterior en XML:
<user>
<id>1045</id>
<username>tech_guru_99</username>
<isActive>true</isActive>
<email></email>
<roles>
<role>admin</role>
<role>editor</role>
</roles>
<profile>
<firstName>Alice</firstName>
<lastName>Smith</lastName>
<age>28</age>
</profile>
</user>
Por qué ganó JSON
- Menos Verboso: XML requiere etiquetas de apertura y cierre para cada fragmento de datos (
<username>...</username>). Esto hace que el tamaño del archivo sea significativamente mayor, lo que significa que tarda más en transmitirse a través de una red. JSON elimina este ruido visual. - Análisis (Parsing) Más Rápido: Los navegadores tienen que atravesar el XML como un Modelo de Objetos de Documento (DOM), lo cual es costoso a nivel computacional. JSON puede ser analizado de forma nativa por el motor de JavaScript en una fracción de milisegundo usando
JSON.parse(). - Matrices (Arrays): XML no tiene un concepto nativo de arrays. Simplemente repites etiquetas (como las etiquetas
<role>de arriba). La sintaxis[]de JSON se asigna perfectamente a los arrays en casi todos los lenguajes de programación.
Trabajando con JSON en JavaScript
Debido a que JSON se deriva de JavaScript, trabajar con él en JS es increíblemente simple gracias al objeto JSON incorporado, que proporciona dos métodos principales.
1. JSON.parse()
Este método toma una cadena JSON en bruto (generalmente recibida de una API) y la convierte en un objeto JavaScript utilizable.
const jsonString = '{"name": "Alice", "age": 28}';
const userObject = JSON.parse(jsonString);
console.log(userObject.name); // Salida: Alice
2. JSON.stringify()
Este método hace exactamente lo contrario. Toma un objeto JavaScript y lo convierte en una cadena JSON para que pueda enviarse a través de la red o guardarse en un archivo.
const myObj = {
name: "Bob",
skills: ["HTML", "CSS", "JS"]
};
const outgoingJSON = JSON.stringify(myObj);
// Salida: '{"name":"Bob","skills":["HTML","CSS","JS"]}'
Conclusión
JSON es un triunfo de la simplicidad. Al establecer un conjunto de reglas mínimo y estricto, proporcionó a toda la industria del software un lenguaje universal para los datos.
Ya sea que estés configurando un proyecto de Node.js (a través de package.json), obteniendo datos de una API de terceros o construyendo una arquitectura compleja de microservicios, JSON es el pegamento que lo mantiene todo unido. Al dominar sus reglas de sintaxis, comprender los tipos de datos compatibles y saber cómo analizarlo (parse) y convertirlo a cadena (stringify) en el lenguaje de tu elección, sientas las bases para casi todo el desarrollo web y de backend moderno.