webtrajans
es

JSON explicado: sintaxis, validación y errores frecuentes

JSON es el formato de intercambio de datos más usado en la web. Sus reglas son pocas pero estrictas: una coma de más basta para que deje de funcionar.

Actualizado: 5 min de lectura

Si trabajas con APIs, configuraciones, exportaciones de datos o automatizaciones, te encontrarás con JSON a diario. Es un formato de texto ligero que representa datos estructurados con objetos y listas, legible tanto para personas como para máquinas. Sus reglas son pocas, pero el analizador no perdona: una comilla simple o una coma sobrante invalidan todo el archivo. En esta guía tienes la sintaxis completa, los errores más comunes y cómo convertir entre JSON y CSV.

Sintaxis básica

Un documento JSON es un único valor, normalmente un objeto o un array:

{
  "nombre": "Lucía Fernández",
  "edad": 34,
  "activa": true,
  "ciudad": "Valencia",
  "idiomas": ["español", "inglés"],
  "direccion": {
    "calle": "Calle Mayor 12",
    "cp": "46001"
  },
  "telefono": null
}

Reglas:

  • Los objetos van entre llaves {} y contienen pares "clave": valor separados por comas.
  • Los arrays van entre corchetes [] y contienen valores separados por comas.
  • Las claves son siempre cadenas entre comillas dobles.
  • No hay coma después del último elemento.

Tipos de datos

Tipo Ejemplo Notas
Cadena "Hola" Solo comillas dobles; escapes con \
Número 42, -3.5, 1.2e3 Punto decimal, sin ceros a la izquierda, sin NaN ni Infinity
Booleano true, false En minúsculas
Nulo null En minúsculas
Objeto {"a": 1} Claves únicas recomendadas
Array [1, 2, 3] Puede mezclar tipos

No hay tipo fecha: las fechas se guardan como cadenas, idealmente en formato ISO 8601 ("2026-10-08T10:30:00Z"), o como número Unix. La guía de Unix timestamp explica la segunda opción.

Ojo con los decimales: aunque en español se use coma decimal, en JSON el separador es siempre el punto: "precio": 19.99, nunca 19,99.

Caracteres especiales en cadenas

{ "texto": "Dijo \"hola\" y se fue.\nSegunda línea", "ruta": "C:\\datos\\archivo.txt" }

Se escapan \", \\, \n (salto de línea), \t (tabulador) y caracteres Unicode con \u00F1 (ñ). Las tildes y la ñ pueden escribirse directamente si el archivo está en UTF-8.

Los errores más comunes

Error Incorrecto Correcto
Coma final {"a": 1, "b": 2,} {"a": 1, "b": 2}
Comillas simples {'a': 'x'} {"a": "x"}
Clave sin comillas {a: 1} {"a": 1}
Coma decimal {"precio": 9,99} {"precio": 9.99}
Comentarios {"a": 1 // nota} Eliminar el comentario
undefined o NaN {"x": undefined} {"x": null}
Falta una coma {"a": 1 "b": 2} {"a": 1, "b": 2}
Comillas tipográficas {“a”: 1} {"a": 1}

Las comillas tipográficas (“ ”) aparecen al copiar desde Word, correos o chats. Son invisibles a simple vista y rompen el archivo.

Validar y formatear

Un JSON minificado ocupa una sola línea y es ilegible. El formateador de JSON lo indenta, lo valida y señala la línea exacta del error. Úsalo para:

  • Revisar la respuesta de una API.
  • Encontrar la coma que falta en un archivo de configuración.
  • Minificar el JSON antes de enviarlo para ahorrar bytes.

En la línea de comandos, jq hace lo mismo:

cat datos.json | jq .

JSON frente a CSV

Característica JSON CSV
Estructura Anidada (objetos dentro de objetos) Plana (filas y columnas)
Tipos de datos Cadena, número, booleano, nulo Todo es texto
Tamaño Más grande (repite claves) Más compacto
Uso típico APIs, configuración, NoSQL Hojas de cálculo, exportaciones

Un mismo dato en ambos formatos:

[{"nombre": "Ana", "ciudad": "Bogotá"}, {"nombre": "Luis", "ciudad": "Lima"}]
nombre,ciudad
Ana,Bogotá
Luis,Lima

Para pasar de uno a otro, usa el conversor de CSV a JSON. Recuerda que en España y en muchos países latinoamericanos Excel usa punto y coma como separador de CSV, porque la coma es el separador decimal; revisa el delimitador al importar.

JSON en la web

  • APIs REST devuelven JSON con la cabecera Content-Type: application/json.
  • Datos estructurados: Google recomienda JSON-LD para el marcado schema; lo explicamos en la guía de datos estructurados.
  • Configuración: package.json, composer.json o manifest.json.
  • Tokens JWT: su contenido es JSON codificado en Base64URL; puedes inspeccionarlo con el decodificador JWT.

Leer JSON en distintos lenguajes

Casi todos los lenguajes incluyen un analizador de JSON:

// JavaScript
const datos = JSON.parse('{"ciudad": "Sevilla", "habitantes": 684000}');
const texto = JSON.stringify(datos, null, 2); // con sangría de 2 espacios
# Python
import json
datos = json.loads('{"ciudad": "Sevilla", "habitantes": 684000}')
texto = json.dumps(datos, ensure_ascii=False, indent=2)

En Python, ensure_ascii=False evita que la ñ y las tildes se conviertan en secuencias ñ. Si el analizador lanza un error, el mensaje suele indicar la línea y la columna: busca justo antes de esa posición, porque el fallo (una coma o una comilla) suele estar en el carácter anterior.

JSON grande y JSON Lines

Para millones de registros, cargar un único array gigante en memoria es lento. El formato JSON Lines (.jsonl) guarda un objeto por línea, de modo que se puede procesar línea a línea y añadir registros sin reescribir el archivo. Es habitual en exportaciones de logs y en conjuntos de datos.

Buenas prácticas

  1. Usa UTF-8 siempre.
  2. Elige un estilo de claves y mantenlo (camelCase o snake_case).
  3. Guarda fechas en ISO 8601 con zona horaria.
  4. No guardes importes de dinero como decimales flotantes si necesitas exactitud: usa céntimos enteros o cadenas.
  5. Valida antes de desplegar cualquier archivo de configuración.

Preguntas frecuentes

¿Qué significa JSON?

JavaScript Object Notation. Nació de la sintaxis de objetos de JavaScript, pero hoy es un formato independiente del lenguaje, definido en el estándar RFC 8259.

¿JSON admite comentarios?

No. El estándar no permite comentarios. Algunos formatos derivados como JSON5 o JSONC (usado en configuraciones de editores) sí los aceptan, pero no son JSON estándar.

¿Por qué da error una coma al final?

Porque JSON no permite comas finales tras el último elemento de un objeto o un array. JavaScript sí las tolera, y por eso es un error muy habitual al copiar código.

¿Cuándo usar JSON y cuándo CSV?

CSV para tablas planas (filas y columnas), por ejemplo para abrir en Excel. JSON para datos anidados o con estructura variable, como respuestas de una API.

Guías relacionadas