Clase 01 — Tipos de Datos en JSON
JSON tiene exactamente 6 tipos de datos. Ni más ni menos.
{
"string": "Hola mundo",
"number": 42,
"boolean": true,
"null": null,
"object": { "clave": "valor" },
"array": [1, 2, 3]
}
1. String (Cadena de texto)
Siempre entre comillas dobles. Nunca comillas simples.
{
"nombre": "RoxsRoss",
"nueva_linea": "Línea 1\nLínea 2",
"tabulacion": "Col1\tCol2",
"comillas": "Dijo \"hola\"",
"backslash": "C:\\Users\\admin",
"unicode": "\u00e9 es la letra é"
}
| Secuencia | Resultado |
|---|---|
\" | Comilla doble |
\\ | Backslash |
\n | Nueva línea |
\t | Tabulación |
\r | Retorno de carro |
\uXXXX | Carácter Unicode |
2. Number (Números)
Enteros y decimales. Sin comillas.
{
"entero": 42,
"negativo": -5,
"decimal": 3.14,
"cientifico": 1.5e+10,
"cero": 0
}
NO válido en JSON
- Con comillas sería string:
"puerto": "8080" - Hex o octal:
0xFF,077 - NaN o Infinity
- Ceros a la izquierda:
007
Regla: Si vas a hacer operaciones matemáticas → number. Si no → string.
{
"puerto_correcto": 8080,
"precio_correcto": 19.99,
"telefono": "011-4567-8901",
"version": "3.8.0",
"ip": "192.168.1.1"
}
3. Boolean
Solo dos valores: true o false. En minúsculas y sin comillas.
{
"activo": true,
"debug": false,
"mantenimiento": false,
"ssl_habilitado": true
}
4. Null
Representa la ausencia de valor. En minúsculas y sin comillas.
{
"nombre": "RoxsRoss",
"segundo_nombre": null,
"empresa": null
}
5. Object (Objeto)
Colección de pares clave-valor entre { }. Se ve en detalle en la Clase 02.
{
"usuario": {
"nombre": "Ana",
"edad": 28
}
}
6. Array (Arreglo)
Lista ordenada de valores entre [ ]. Se ve en detalle en la Clase 03.
{
"tags": ["devops", "docker", "k8s"]
}
Ejemplo completo: Todos los tipos
{
"servicio": {
"nombre": "pokemon-api",
"version": "2.1.0",
"puerto": 8080,
"replicas": 3,
"debug": false,
"ssl": true,
"certificado": null,
"tags": ["api", "rest", "produccion"],
"healthcheck": {
"path": "/health",
"intervalo_segundos": 30,
"habilitado": true
},
"dependencias": [
{ "nombre": "postgres", "host": "db.ejemplo.com", "puerto": 5432 },
{ "nombre": "redis", "host": "cache.ejemplo.com", "puerto": 6379 }
]
}
}
Verificar tipos con jq
echo '{"nombre":"Ana","edad":28,"activo":true,"data":null}' | \
jq 'to_entries[] | {key: .key, tipo: (.value | type)}'
# { "key": "nombre", "tipo": "string" }
# { "key": "edad", "tipo": "number" }
# { "key": "activo", "tipo": "boolean" }
# { "key": "data", "tipo": "null" }