¿Qué es JSON? Guía para principiantes con sintaxis y ejemplos
JSON es un formato de texto para datos estructurados. Reglas de sintaxis, un ejemplo y cómo lo usan las API y cómo probarlo.
¿Qué es JSON?
JSON (JavaScript Object Notation) es un formato de texto para datos estructurados. Construye los valores con objetos, arrays, cadenas, números, true, false y null. Cualquier lenguaje puede leerlo y escribirlo, las personas también pueden leerlo, y es el formato habitual del cuerpo de las peticiones y respuestas de las API web. Su tipo de medio es application/json.
Cómo funciona JSON
Un documento JSON es un único valor, normalmente un objeto. Un objeto es un conjunto de pares "clave": valor entre llaves, un array es una lista ordenada entre corchetes, y los valores se pueden anidar con la profundidad que haga falta. El formato se define en el RFC 8259, y MDN ofrece una buena introducción para principiantes.
{
"id": 42,
"name": "Alice Johnson",
"active": true,
"tags": ["admin", "beta-tester"],
"address": { "city": "Berlin", "zip": "10115" },
"last_login": "2026-10-01T14:30:00Z",
"avatar": null
}JSON no tiene un tipo fecha, así que las fechas viajan como cadenas (lo habitual es ISO 8601) y tu código las convierte.
Reglas de sintaxis que más fallan
- Las claves y las cadenas llevan comillas dobles. Las simples no son válidas.
- No hay coma después del último elemento.
- No hay comentarios.
- Nada de
undefined,NaNniInfinity. Usanullo quita la clave. - Los números no pueden tener ceros a la izquierda.
- El texto que se intercambia entre sistemas debe ir en UTF-8.
Todo documento JSON es un literal válido de JavaScript, pero no al revés: un objeto de JavaScript con claves sin comillas o con coma final no es JSON.
Leer y generar JSON
Convertir texto en datos se llama parsear (deserializar) y convertir datos en texto, serializar. Todos los lenguajes habituales lo incluyen en su biblioteca estándar:
// JavaScript
const data = JSON.parse('{"id": 42}');
const text = JSON.stringify({ id: 42 });
# Python
import json
data = json.loads('{"id": 42}')
text = json.dumps({"id": 42})Para leer a simple vista una respuesta minificada, pégala en la herramienta gratuita para dar formato a JSON y te la devuelve con sangrías.
JSON en las API
La mayoría de las API REST intercambian JSON. El cliente envía Content-Type: application/json en las peticiones con cuerpo y el servidor responde con la misma cabecera. Lo que va en el cuerpo es el payload de la petición o de la respuesta, y la URL a la que se envía es el endpoint de la API.
POST /api/users HTTP/1.1
Content-Type: application/json
{ "email": "alice@example.com", "name": "Alice" }Puedes lanzar esta misma petición desde la línea de comandos con la herramienta curl online. JSON también es el formato de mensajes de JSON-RPC, un protocolo que invoca métodos remotos en lugar de direccionar recursos.
Validar JSON
Que la sintaxis sea válida solo significa que un parser puede leer el texto, no que los datos sean correctos. Un JSON Schema describe qué campos son obligatorios, qué tipo tienen y qué valores se admiten, de modo que un validador rechaza un payload que se parsea bien pero trae "age": "forty". Nuestra guía paso a paso de JSON Schema (en inglés) explica cómo escribir uno.
Errores habituales con JSON
- Construir JSON concatenando cadenas. Una comilla sin escapar en un nombre rompe el documento. Serializa siempre con una biblioteca.
- Olvidar la cabecera Content-Type. Muchos servidores tratan entonces el cuerpo como texto plano o como un formulario y devuelven un 400 o un 415.
- Enviar enteros muy grandes como número. Algunos parsers, JavaScript incluido, pierden precisión con enteros muy grandes, como los IDs de 64 bits. Envíalos como cadenas.
- Depender del orden de las claves. Los objetos son conjuntos de miembros sin orden. No cuentes con uno concreto.
- Cambiar nombres o tipos de campos sin avisar. Un campo renombrado es un cambio incompatible para todos los clientes que lo leen.
JSON, pruebas y monitorización
Los fallos de JSON casi nunca se manifiestan como un error. Una respuesta 200 puede traer igualmente una lista vacía o un campo ausente. Al probar una API, comprueba el cuerpo además del código de estado. La monitorización de API de LoadFocus revisa código de estado, cuerpo de la respuesta, cabeceras y tiempo de respuesta con la frecuencia que configures, cada 5 minutos en el plan gratuito, de modo que un payload roto genera una alerta antes de que lo note un cliente.
Preguntas frecuentes sobre JSON
¿Qué significa JSON?
JSON significa JavaScript Object Notation. Nació de la sintaxis de objetos de JavaScript, pero es un formato independiente del lenguaje.
¿JSON es un lenguaje de programación?
No. JSON solo describe datos. No tiene variables, funciones ni lógica, así que hace falta un lenguaje de programación para generarlo y leerlo.
¿Qué diferencia hay entre JSON y un objeto de JavaScript?
JSON es texto y un objeto de JavaScript vive en memoria. JSON es más estricto: las claves llevan comillas dobles, no admite comentarios ni comas finales y no puede representar funciones ni valores undefined.
¿Puede JSON tener comentarios?
No. El estándar no define sintaxis de comentarios. Si necesitas notas, usa un campo de documentación aparte o un formato pensado para archivos de configuración.
¿Por qué las API usan JSON en lugar de XML?
JSON es más corto, encaja directamente con los objetos y arrays de la mayoría de lenguajes y necesita menos código para parsearse. XML sigue siendo mejor cuando se mezcla texto y marcado, como en los documentos.
Términos relacionados
- ¿Qué es JSON-RPC? Protocolo, ejemplos y comparación con REST
- ¿Qué es multipart/form-data Content-Type? Subida de archivos, ejemplos
- ¿Qué es Swagger? Swagger y OpenAPI explicados
- Operaciones CRUD: Create, Read, Update, Delete explicado
- ¿Qué son los ataques a APIs?
- ¿Qué son las cookies de API? Definición y seguridad
- Métricas de rendimiento de API: latencia, throughput y tasa de errores
- ¿Qué son las API internas?
Herramientas LoadFocus relacionadas
Lleva este concepto a la práctica con LoadFocus, la misma plataforma que potencia todo lo que acabas de leer.