¿Qué es JSON? Guía sencilla con ejemplos
JSON (JavaScript Object Notation) es un formato de texto sencillo para escribir datos estructurados, como un cliente, un pedido o una lista de productos, en forma de nombres emparejados con valores. Es fácil de leer para las personas y fácil de generar y analizar para los programas. Cuando las apps y los servicios intercambian datos por la web, JSON es, con diferencia, el formato más habitual.
Por qué importa JSON al crear con IA
Vas a encontrarte con JSON constantemente, aunque nunca escribas código:
- APIs. Cuando las pantallas de tu app cargan datos de su backend, o tu backend llama a un servicio de pagos, de correo o de IA, los datos normalmente viajan en JSON. Consulta qué es una API.
- Archivos de configuración. Muchos archivos de configuración de proyectos son JSON; por ejemplo,
package.json, que enumera las dependencias de un proyecto JavaScript. - Bases de datos. Postgres puede guardar JSON en una columna (el tipo
jsonb) para datos que no encajan en filas y columnas ordenadas. Consulta qué es Postgres. - Respuestas de la IA. Cuando quieres que un modelo de IA devuelva algo que un programa pueda usar (una lista de etiquetas, campos extraídos de una factura), normalmente pides JSON.
- Mensajes de error y registros. Muchos errores llegan en JSON, y leerlos suele ser lo más rápido para averiguar qué salió mal.
Saber leer JSON te permite comprobar qué recibió realmente tu app, detectar un campo que falta y describir los problemas con precisión a tu creador de apps con IA.
Una analogía cotidiana
Piensa en un formulario de papel: Nombre: ____, Teléfono: ____, Boletín: ☐ sí ☐ no. Cada entrada es una etiqueta con un valor al lado. JSON es ese formulario escrito como texto, con un diseño estricto que un ordenador puede leer sin adivinar. Y, como los formularios, JSON puede tener secciones dentro de secciones (un bloque de dirección con calle, ciudad y código postal) y listas (varios teléfonos).
Así es JSON
Aquí tienes una sola reserva en JSON:
{
"id": 5001,
"cliente": "Lena Park",
"servicio": "Corte de pelo",
"inicio": "2026-10-03T14:00:00Z",
"precio": 35.5,
"pagado": false,
"notas": null,
"extras": ["arreglo de barba", "toalla caliente"],
"contacto": {
"email": "lena@example.com",
"telefono": "+34 91 123 45 67"
}
}
Cómo se lee:
- Las llaves
{ }envuelven un objeto: un conjunto de pares nombre/valor. - Cada par es
"nombre": valor, separados por comas. - Los corchetes
[ ]envuelven un array: una lista ordenada. - Los objetos y los arrays pueden ir dentro unos de otros, como
contactoyextras.
Los seis tipos de valor
JSON solo tiene seis tipos de valor. Esa lista tan corta es en buena parte la razón por la que funciona en todas partes.
| Tipo | Ejemplo | Notas |
|---|---|---|
| Cadena (texto) | "Lena Park" | Siempre entre comillas dobles |
| Número | 35.5, -2, 1e6 | Sin comillas; sin símbolos de moneda |
| Booleano | true, false | En minúsculas, sin comillas |
| Null | null | «Sin valor» |
| Objeto | { "ciudad": "Sevilla" } | Valores con nombre |
| Array | [1, 2, 3] | Lista ordenada; los elementos pueden ser de cualquier tipo |
No hay tipo de fecha. Las fechas se escriben como cadenas, normalmente en el formato ISO 8601 que se ve arriba (2026-10-03T14:00:00Z, donde Z significa UTC). Ponerse de acuerdo en ese formato evita toda una categoría de errores de zona horaria.
Las reglas estrictas (de donde salen los errores)
JSON es menos tolerante de lo que parece. Todo esto no es válido:
{ nombre: "Lena" } ← clave sin comillas dobles
{ 'nombre': 'Lena' } ← comillas simples
{ "a": 1, "b": 2, } ← coma final
{ "a": 1 "b": 2 } ← falta una coma
{ "a": 1 // comentario } ← los comentarios no están permitidos
La mayoría de los errores «Unexpected token» que verás son uno de estos. Un validador o formateador de JSON te mostrará la línea exacta.
Ejemplo práctico: JSON en una app
Una clienta reserva un corte de pelo en una app de peluquería. Así aparece JSON:
- El formulario de reserva envía esto al backend de la app:
{ "servicio": "Corte de pelo", "inicio": "2026-10-03T14:00:00Z", "nombre": "Lena Park" }
- El backend guarda la reserva en la base de datos y responde con el estado
201 Createdy:
{ "id": 5001, "estado": "confirmada" }
- Si la hora ya estaba ocupada, puede responder en cambio con el estado
409 Conflicty:
{ "error": "hueco_ocupado", "message": "Esa hora acaba de reservarse. Elige otra, por favor." }
La página lee estado o error y muestra el mensaje correcto. Si en lugar de eso la página mostrara una pantalla en blanco, abrir las herramientas para desarrolladores del navegador (pestaña Network o Red) te mostraría este JSON, que a menudo es la pista más rápida de lo que salió mal.
Términos clave
| Término | Significado |
|---|---|
| Clave | El nombre de un par nombre/valor, como "email". |
| Parsear | Convertir texto JSON en datos que un programa puede usar. |
| Serializar / stringify | Convertir datos en texto JSON para enviarlos o guardarlos. |
| Payload (carga útil) | Los datos enviados en una petición o respuesta. |
| Schema (esquema) | Una descripción de la forma que deben tener los datos: qué campos y de qué tipo. JSON Schema es un estándar para escribirlo. |
| JSONB | El tipo de columna JSON binario de Postgres, que se puede indexar y consultar. |
| NDJSON / JSON Lines | Un objeto JSON por línea, habitual en registros y streaming. |
Malentendidos habituales
- «JSON es JavaScript». Procede de la sintaxis de JavaScript, pero es independiente del lenguaje: Python, Java, C#, Go y el resto de lenguajes lo leen.
- «Los números entre comillas están bien».
"35"es una cadena, no un número. Mezclarlos causa errores como que"35" + "5"dé"355". El dinero suele guardarse mejor en céntimos enteros (3550) para evitar problemas de redondeo. - «JSON es seguro porque son solo datos». JSON puede transportar cualquier cosa, incluidos secretos. No pongas claves de API en un JSON que se envíe al navegador.
- «Ponlo todo en una columna JSON». Es práctico para extras flexibles, pero los datos por los que buscas, filtras o cruzas normalmente deben ir en columnas propias.
- «La IA siempre devuelve JSON válido». Los modelos pueden añadir texto extra o romper el formato. Muchos proveedores ofrecen un modo de salida estructurada, pero tu código debe comprobar aun así lo que recibe.
Qué pedir a tu creador de apps con IA
- «Muéstrame un ejemplo del JSON que devuelve este endpoint.»
- «Devuelve los errores como JSON con un código
errory unmessagelegible para personas.» - «Guarda las fechas como cadenas ISO 8601 en UTC y conviértelas a la hora local solo al mostrarlas en pantalla.»
- «Guarda los precios como céntimos enteros.»
- «Valida el JSON que llega en el servidor y rechaza las peticiones con campos que faltan o con un tipo incorrecto.»
- «Cuando llames al modelo de IA, pide JSON con esta forma exacta y compruébalo antes de usarlo.»
JSON en Mythex
No necesitas escribir JSON a mano en Mythex: describes lo que quieres y el agente escribe el código que lo envía y lo lee. Aun así, conviene reconocerlo: cuando algo se rompe, pegar el error de JSON en el chat da al agente una pista precisa. La receta de backend REST API de la documentación pide «errores JSON claros» desde el principio, y la receta integrar cualquier API explica cómo llamar a servicios externos. Para ver el panorama completo, consulta REST frente a GraphQL y cómo depurar una app creada con IA.
Preguntas
¿Qué es JSON en términos sencillos?
JSON (JavaScript Object Notation) es un formato de texto plano para escribir datos estructurados como nombres y valores, por ejemplo «nombre»: «Lena». Casi todas las APIs web lo usan para enviar datos de ida y vuelta, y muchas apps lo usan para ajustes y datos guardados.
¿JSON es un lenguaje de programación?
No. JSON es un formato de datos, no un lenguaje. No puede hacer nada por sí mismo: solo describe datos. Aunque viene de JavaScript, prácticamente cualquier lenguaje de programación sabe leerlo y escribirlo.
¿Cuál es la diferencia entre JSON y un objeto de JavaScript?
Se parecen, pero JSON es más estricto. En JSON todas las claves deben ir entre comillas dobles, las cadenas usan comillas dobles, no hay comentarios, no hay comas finales y los valores se limitan a cadenas, números, true, false, null, objetos y arrays.
¿Por qué dice que mi JSON no es válido?
Las causas habituales son una coma final después del último elemento, comillas simples en lugar de dobles, una coma que falta entre elementos, un corchete sin cerrar o un comentario. Pégalo en un validador de JSON y te señalará la línea.