La mejor manera de entender JSON es leer ejemplos. Esta guía recorre el formato JSON desde abajo —— objetos simples, estructuras anidadas, arrays, tipos mezclados —— y luego enseña patrones de JSON reales que verás en APIs, ficheros de configuración y bases de datos. Cada ejemplo es JSON válido, copiable y pegable.
Úsalos como fichero json de ejemplo para tests, fixtures o documentación —— cada snippet es un ejemplo de json real que puedes guardar con extensión .json y cargar directamente.
El ejemplo JSON más simple
Cualquier valor JSON válido es un documento JSON completo. Los documentos JSON más sencillos son primitivos:
"hello" // una cadena
42 // un número
true // un booleano
null // nullEn la práctica, casi todo documento JSON que encuentres es un objeto o un array.
Ejemplo de objeto JSON
Un objeto JSON es una colección de pares clave-valor. Las claves deben ser cadenas entre comillas dobles. Los valores pueden ser de cualquier tipo JSON.
{
"id": 42,
"name": "Alice Chen",
"email": "alice@example.com",
"age": 30,
"active": true,
"score": 98.6,
"nickname": null
}Nota: el orden de las claves en objetos JSON no está garantizado —— los parsers pueden devolverlas en cualquier orden.
Ejemplo de array JSON
Un array JSON es una lista ordenada de valores. Los elementos pueden ser de distintos tipos y el orden siempre se preserva.
// Array de cadenas
["apple", "banana", "cherry"]
// Array de números
[1, 2, 3, 4, 5]
// Tipos mezclados
[42, "hello", true, null, { "key": "value" }]
// Array de objetos (común en respuestas de API)
[
{ "id": 1, "name": "Alice" },
{ "id": 2, "name": "Bob" },
{ "id": 3, "name": "Carol" }
]Ejemplo de JSON anidado
Objetos y arrays pueden anidarse a cualquier profundidad. Aquí está la expresividad de JSON.
{
"user": {
"id": 1001,
"name": "Alice Chen",
"address": {
"street": "123 Main St",
"city": "San Francisco",
"state": "CA",
"zip": "94102"
},
"tags": ["premium", "early-adopter"],
"preferences": {
"notifications": {
"email": true,
"sms": false,
"push": true
},
"theme": "dark"
}
}
}Ejemplo de formato JSON: respuesta de API REST
Una respuesta paginada típica de una API se ve así:
{
"status": "success",
"data": {
"page": 1,
"per_page": 10,
"total": 47,
"total_pages": 5,
"items": [
{
"id": "prod_001",
"name": "Wireless Headphones",
"price": 89.99,
"currency": "USD",
"in_stock": true,
"categories": ["electronics", "audio"],
"rating": 4.7,
"reviews_count": 2341
},
{
"id": "prod_002",
"name": "USB-C Hub",
"price": 39.99,
"currency": "USD",
"in_stock": false,
"categories": ["electronics", "accessories"],
"rating": 4.2,
"reviews_count": 891
}
]
},
"meta": {
"request_id": "req_8f3a2c",
"timestamp": "2024-10-15T14:32:00Z"
}
}Ejemplo de fichero de configuración JSON
Los ficheros de configuración en JSON son comunes en el tooling de JavaScript. Aquí tienes una estructura típica de package.json:
{
"name": "my-app",
"version": "1.0.0",
"description": "A sample application",
"main": "index.js",
"scripts": {
"start": "node index.js",
"test": "jest",
"build": "tsc"
},
"dependencies": {
"express": "^4.18.2",
"lodash": "^4.17.21"
},
"devDependencies": {
"typescript": "^5.0.0",
"jest": "^29.0.0"
},
"engines": {
"node": ">=18.0.0"
}
}Formato de datos JSON: fecha y hora
JSON no tiene tipo de fecha nativo. Las fechas se representan como cadenas. ISO 8601 es el formato universalmente aceptado:
{
"created_at": "2024-10-15T14:32:00Z", // fecha-hora UTC
"updated_at": "2024-10-15T14:32:00+08:00", // con offset de zona
"birth_date": "1990-06-21", // solo fecha
"meeting_time": "09:00:00" // solo hora
}Alternativamente, algunos sistemas usan timestamps Unix (segundos desde la época) como números:
{
"created_at": 1728999120,
"expires_at": 1761057600
}JSON con campos opcionales y nulos
Usa null para campos que existen pero no tienen valor. Omite por completo los campos opcionales y ausentes.
{
"id": 5,
"name": "Bob",
"email": "bob@example.com",
"phone": null, // existe pero sin valor
"company": "Acme Corp",
"title": null // existe pero sin valor
// "fax" se omite entero —— no aplica
}Ejemplos de errores JSON (y cómo arreglarlos)
Estos son los errores de formato JSON comunes:
// ❌ comillas simples (no es JSON válido)
{ 'name': 'Alice' }
// ✅ Arreglo: usa comillas dobles
{ "name": "Alice" }
// ❌ Clave sin comillas
{ name: "Alice" }
// ✅ Arreglo: entrecomilla la clave
{ "name": "Alice" }
// ❌ Coma final
{ "a": 1, "b": 2, }
// ✅ Arreglo: quita la coma final
{ "a": 1, "b": 2 }
// ❌ Comentario JavaScript
{ "debug": true // activa logging }
// ✅ Arreglo: quita el comentario
{ "debug": true }
// ❌ Booleano estilo Python
{ "active": True }
// ✅ Arreglo: usa minúsculas
{ "active": true }Si tu cadena JSON tiene cualquiera de estos errores, pégalo en JSON Fix para repararlo y formatearlo automáticamente.
Ejemplo de JSON Lines (NDJSON, jsonlines)
Para logs en streaming, datasets de ML y APIs en bulk, la convención es un valor JSON por línea separados por \n. El formato tiene dos nombres —— jsonlines (de jsonlines.org) y NDJSON —— pero la especificación es la misma:
{"event":"login","user":"ada","at":"2026-05-28T09:00:00Z"}
{"event":"view","user":"ada","page":"/dashboard"}
{"event":"logout","user":"ada","at":"2026-05-28T09:42:00Z"} Cada línea se parsea de manera independiente. No le hagas JSON.parse() al fichero entero —— haz split por el salto de línea y parsea línea a línea.
Ejemplo de respuesta OpenAPI
Una especificación OpenAPI define respuestas con forma estilo JSON Schema:
{
"openapi": "3.1.0",
"paths": {
"/users/{id}": {
"get": {
"responses": {
"200": {
"description": "OK",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": ["id", "email"],
"properties": {
"id": { "type": "integer" },
"email": { "type": "string", "format": "email" }
}
}
}
}
}
}
}
}
}
}Ejemplos solo-fecha y solo-hora
ISO 8601 también define formas de fecha pura y hora pura —— útiles cuando la hora del día o la fecha no tienen sentido por sí mismas:
{
"birth_date": "1815-12-10", // solo fecha
"office_hours": "09:00:00", // solo hora
"started_at": "2026-05-28T09:00:00Z" // fecha-hora completa, para contraste
}Ejemplo de GeoJSON
GeoJSON es un formato estándar para datos geográficos basado en JSON:
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [-122.4194, 37.7749]
},
"properties": {
"name": "San Francisco",
"country": "US",
"population": 873965
}
}Preguntas frecuentes
¿Cuál es un ejemplo de JSON válido?
El más simple es un único primitivo como 42 o "hello", pero la mayoría del JSON real es un objeto como { "name": "Alice", "age": 30, "active": true } o un array de esos objetos.
¿Cómo se representan las fechas en JSON?
JSON no tiene tipo de fecha. Las fechas se almacenan como cadenas —— ISO 8601 ("2024-10-15T14:32:00Z") es la opción universal —— o como timestamps Unix numéricos.
¿Cómo represento un valor ausente en JSON?
Usa null para un campo que existe pero no tiene valor, y omite la clave por completo para campos que no aplican. JSON no tiene undefined.
¿Cómo se ve un JSON anidado?
Los objetos y arrays pueden contener otros objetos y arrays a cualquier profundidad —— ver los ejemplos anidado y de REST API arriba. Para las reglas subyacentes, ver ¿Qué es JSON?
Prueba estos ejemplos
Copia cualquiera de los ejemplos de arriba y pégalo en las herramientas siguientes para explorar los datos:
- JSON Fix —— formatea, valida y repara JSON
- JSON Diff —— compara dos ejemplos JSON lado a lado
- ¿Qué es JSON? —— guía completa a los seis tipos de dato y la gramática JSON
- Cómo formatear JSON —— pretty-print JSON en JavaScript, Python, jq y tu navegador
- JSON Stringify —— convierte un valor JSON en un literal de cadena escapado