¿Qué es JSON? Guía Principiantes con Sintaxis, Ejemplos
JSON (JavaScript Object Notation) es un formato texto para intercambio datos, keys, valores, arrays, objects. Universal en APIs, configs, bases NoSQL.
¿Qué es JSON?
JSON (JavaScript Object Notation) es un formato datos liviano, basado en texto, para representar datos estructurados. A pesar del nombre, es language-agnostic, cada lenguaje moderno tiene librerías para parsearlo y generarlo.
Sintaxis básica JSON
JSON tiene seis tipos datos:
- Object: colección key-value en
{} - Array: lista ordenada en
[] - String: texto en
"comillas dobles" - Number: integer o float
- Boolean:
trueofalse - null
Ejemplo JSON
{
"id": 42,
"name": "Alice Johnson",
"email": "alice@example.com",
"active": true,
"preferences": {
"language": "en",
"notifications": false
},
"tags": ["admin", "beta-tester"]
}Reglas sintaxis JSON
- Keys deben ser strings, en comillas dobles
- Strings deben usar comillas dobles
- Sin trailing commas
- Sin comentarios
- Sin undefined; usar null
Operaciones JSON comunes
Parse JSON
const data = JSON.parse('{"id": 42}');
import json
data = json.loads('{"id": 42}')Stringify JSON
const json = JSON.stringify({ id: 42, name: 'Alice' });JSON vs XML vs YAML
| Feature | JSON | XML | YAML |
|---|---|---|---|
| Verbosidad | Baja | Alta | Más baja |
| Comentarios | No | Sí | Sí |
| Validación schema | JSON Schema | XSD | JSON Schema |
| Mejor para | APIs, config | Datos documento | Configs, k8s |
JSON en APIs REST
POST /api/users HTTP/1.1
Content-Type: application/json
{ "email": "alice@example.com", "name": "Alice" }JSON Schema
{
"type": "object",
"required": ["email", "name"],
"properties": {
"email": { "type": "string", "format": "email" },
"name": { "type": "string", "minLength": 1 }
}
}Mejores prácticas JSON
- ISO 8601 para fechas.
- Naming consistente.
- Validar contra schema.
- Comprimir con gzip/Brotli.
- null sobre keys faltantes.
- Numbers en rango safe JS.
- Sin binario en JSON.
- Stream arrays grandes.
Pitfalls JSON comunes
- Comillas simples.
- Trailing commas.
- Comentarios en JSON estándar.
- Precisión números.
- Fechas indefinidas.
- Shapes inconsistentes.
- HTML escaping en JSON.
- Inyección JSON.
Variantes de JSON
| Variante | Añade | Caso uso |
|---|---|---|
| JSON5 | Comentarios, trailing commas | Config files |
| JSONC | Comentarios | VS Code settings |
| NDJSON | Records newline-delimited | Log streaming |
| JSON-LD | Semántica linked-data | SEO structured data |
| GeoJSON | Shapes geográficas | Mapas, GIS |
| JSON Patch | Formato diff | API partial updates |
FAQ: JSON
¿Por qué JSON sobre XML?
Más pequeño, sintaxis más simple, parsing nativo JS.
¿Puede JSON tener comentarios?
JSON estándar: no. JSON5/JSONC: sí.
¿Cómo envío fechas en JSON?
Strings ISO 8601.
¿Qué sobre números grandes?
Sobre JS Safe Integer serializar como string.
¿Es seguro parsear JSON de fuentes no confiables?
JSON.parse es seguro; pero validar shape vía schema.
¿Diferencia entre JSON y JS objects?
JSON es formato texto. JS objects son datos runtime.
¿Cómo pretty-printeo JSON?
JSON.stringify(obj, null, 2); jq ..
Testea APIs JSON a escala con LoadFocus
LoadFocus corre scripts JMeter y k6 que pegan APIs JSON desde 25+ regiones. Regístrate en loadfocus.com/signup.
Herramientas LoadFocus relacionadas
Lleva este concepto a la práctica con LoadFocus, la misma plataforma que potencia todo lo que acabas de leer.