Lección 4
Objetos y arrays
Estructuras anidadas, nombres de claves y modelado de datos reales.
La mayoría de documentos JSON reales combinan objetos y arrays para representar entidades y colecciones. Diseñar formas claras facilita consumir APIs y configs.
Objetos como registros
Un objeto suele modelar una cosa: un usuario, un pedido, un bloque de ajustes:
{
"userId": "u_42",
"email": "[email protected]",
"preferences": {
"theme": "dark",
"notifications": true
}
}
Los objetos anidados agrupan campos relacionados sin aplanar nombres como preferences_theme.
Arrays como listas
Los arrays modelan colecciones ordenadas: etiquetas, líneas de pedido, resultados de búsqueda:
{
"tags": ["json", "api", "tutorial"],
"items": [
{ "sku": "A1", "qty": 2 },
{ "sku": "B3", "qty": 1 }
]
}
Convenciones de nombres de claves
Las claves JSON distinguen mayúsculas y minúsculas. Estilos habituales:
- camelCase —
firstName(típico en APIs JavaScript) - snake_case —
first_name(común en backends Python/Ruby) - kebab-case — poco frecuente en claves porque
-es resta; a menudo se evita
Elige un estilo por API y mantén consistencia.
Estructuras vacías
Ambas son válidas y significan cosas distintas:
{ "list": [] }
{ "list": {} }
[] es un array vacío; {} es un objeto vacío. No los intercambies salvo que tu schema permita ambos.
Profundidad y legibilidad
El anidamiento profundo (a.b.c.d.e) refleja datos pero perjudica la lectura. Muchos equipos aplanan con nombres claros o paginan arrays grandes. Al leer JSON desconocido, empieza en el nivel superior, expande un objeto o array a la vez y observa patrones repetidos: así suelen diseñarse los payloads de API.