← Todos los artículos

¿Qué es JSON? Una guía completa al formato, sintaxis y archivos JSON

JSON (JavaScript Object Notation) es el formato universal de intercambio de datos. Aprende los seis tipos de datos, las reglas gramaticales que hacen estricto al JSON, dónde se usan los archivos .json y cómo parsear JSON en cualquier lenguaje.

JSON (JavaScript Object Notation) es un formato de texto ligero para almacenar e intercambiar datos estructurados. Impulsa la gran mayoría de las APIs web, la mayoría de los ficheros de configuración y un sinfín de bases de datos. Si alguna vez has visto una respuesta de una API REST o has abierto un fichero package.json, has leído JSON. Esta guía explica exactamente qué es JSON, qué aspecto tiene el formato y por qué se convirtió en la lengua franca del intercambio de datos.

¿Qué es JSON?

JSON significa JavaScript Object Notation. Lo creó Douglas Crockford a comienzos de los 2000 como una alternativa más simple a XML para intercambiar datos entre un servidor web y un navegador. Pese al "JavaScript" del nombre, JSON es independiente del lenguaje —— todos los lenguajes principales traen un parser JSON integrado.

El formato lo definen dos estándares internacionales: el RFC 8259 de IETF (historia y cambios clave) y ECMA-404 de Ecma International. Ambos dicen lo mismo: JSON es una secuencia de caracteres Unicode que representa uno de seis tipos de datos, codificados en UTF-8.

Los seis tipos de datos de JSON

JSON soporta exactamente seis tipos de valor. Entenderlos es la base para entender el formato JSON.

1. Objeto (Object)

Una colección desordenada de pares clave–valor entre llaves. Las claves deben ser cadenas (entre comillas dobles). Los valores pueden ser cualquier tipo JSON.

{
  "name": "Alice",
  "age": 30,
  "active": true
}

2. Array

Una lista ordenada de valores entre corchetes.

["apple", "banana", "cherry"]

3. Cadena (String)

Una secuencia de caracteres Unicode encerrada entre comillas dobles. Las comillas simples no son JSON válido.

"Hello, world!"

4. Número (Number)

Un entero o un número de punto flotante. JSON no tiene tipos separados para enteros y flotantes —— solo number. Sin comillas, sin literales hex, sin NaN o Infinity.

42
3.14
-7
1.5e10

5. Booleano (Boolean)

Exactamente true o false, en minúsculas. JSON no acepta True, False, yes, no, 1 o 0 como booleanos.

true
false

6. Null

Representa la ausencia de valor. Escrito como null en minúsculas.

null

¿Qué es un fichero JSON? (y el formato .json)

Un fichero JSON (a veces tecleado como jason file) es un fichero de texto plano que contiene un único valor JSON —— normalmente un objeto o array. El formato .json es simplemente texto UTF-8 conforme a RFC 8259, con la extensión .json por convención. Al ser texto plano, no necesitas un visor especial.

Cómo abrir un fichero JSON (o .json): cualquier editor de texto sirve —— VS Code, Notepad, TextEdit, Sublime, nano. La misma pregunta se hace de muchas formas —— how to open json files, how to open a .json file, how do i open a json file, how do you open a json file o simplemente open json file —— y la respuesta es la misma: ábrelo como texto. Para una vista más legible, pega el contenido en el Visor JSON para un árbol plegable, o en la herramienta JSON Fix para formatearlo. En macOS y Windows, hacer doble clic en un .json suele abrirlo en el editor de texto por defecto; si intenta abrirse en el navegador, haz clic derecho y elige "Abrir con" para escoger un editor. No hace falta descomprimir nada —— los .json no son archivos comprimidos.

Cómo crear un fichero JSON (también buscado como "how to make a json file"): abre cualquier editor de texto, escribe un único valor JSON válido (un objeto, array, cadena, número, booleano o null) y guárdalo con la extensión .json. Ese es todo el proceso —— no hay cabecera, ni declaración de esquema, ni marcador de codificación obligatorio aparte de UTF-8. Los programas lo leen como JSON en cuanto reconocen la extensión. Un pequeño json file example: { "name": "Ada", "active": true }.

¿Qué es el formato JSON? (y la búsqueda relacionada, why files are stored in json format): el formato JSON es un formato de texto pequeño, independiente del lenguaje, para datos —— claves, valores, arrays y objetos, con un conjunto fijo de tipos literales. Los ficheros se guardan en este formato porque el mismo documento puede leerlo Python, Go, Java, JavaScript, Rust y las bases de datos sin traducción —— JSON es el mínimo común denominador para mover datos estructurados entre sistemas.

// users.json
[
  { "id": 1, "name": "Alice", "role": "admin" },
  { "id": 2, "name": "Bob",   "role": "editor" }
]

Ficheros JSON comunes que seguramente ya hayas visto:

  • package.json —— metadatos y dependencias de un proyecto Node.js
  • tsconfig.json —— configuración del compilador TypeScript
  • settings.json —— ajustes de usuario de VS Code
  • manifest.json —— manifest de extensión de navegador o PWA

¿Qué es el formato de datos JSON?

El formato de datos JSON tiene unas pocas reglas estrictas que lo distinguen del código JavaScript que se parece a él:

  • Todas las claves deben ser cadenas entre comillas dobles.{ name: "Alice" } es un literal de objeto JavaScript, no JSON.
  • Las cadenas deben usar comillas dobles.{ "name": 'Alice' } no es JSON válido.
  • Sin comas finales.{ "a": 1, } no es JSON válido.
  • Sin comentarios.// comment y /* block comment */ no se permiten en JSON.
  • Sin undefined. El undefined de JavaScript no tiene equivalente JSON. Usa null en su lugar.

JSON vs. XML: por qué ganó JSON (xml vs json)

¿Es JSON lo mismo que XML? No —— ambos transportan datos estructurados, pero los dos formatos son distintos en forma, tamaño y maquinaria. Antes de que JSON se impusiera, XML era el formato estándar de intercambio de datos. Los mismos datos en ambos:

<!-- XML -->
<user>
  <name>Alice</name>
  <age>30</age>
</user>

// JSON
{ "name": "Alice", "age": 30 }

JSON es más compacto, más fácil de leer por humanos y nativamente parseable en JavaScript sin librería de terceros. Para la mayoría de casos —— respuestas de API, configuración, mensajería —— JSON requiere significativamente menos ancho de banda y menos código que XML.

Dónde se usa JSON

  • APIs REST: la cabecera Content-Type: application/json marca prácticamente toda respuesta moderna de API web.
  • Ficheros de configuración:package.json, tsconfig.json, .eslintrc.json, plantillas de AWS CloudFormation.
  • Bases de datos: PostgreSQL, MySQL, MongoDB y DynamoDB soportan almacenar y consultar columnas o documentos JSON de forma nativa.
  • Ficheros de log: el logging estructurado (usando JSON Lines) hace los datos parseables por máquinas como Elasticsearch.
  • Comunicación entre procesos: microservicios, colas de mensajes (Kafka, RabbitMQ) y funciones serverless usan JSON como formato de payload por defecto.

JSON en bases de datos

La mayoría de bases de datos modernas pueden almacenar y consultar JSON directamente, así que un documento no tiene que vivir en un almacén documental aparte para mantener su estructura:

  • PostgreSQL —— dos tipos: json guarda el texto exacto; jsonb guarda una representación binaria indexable. Consulta con -> / ->> para campos y @> para contención; indexa las rutas calientes con un índice GIN sobre la columna jsonb.
  • MongoDB —— los documentos son tipo JSON (BSON en disco). Índices por campo y pipelines de agregación completos trabajan directamente sobre la forma del documento.
  • SQLite —— la extensión JSON1 (integrada en SQLite moderno) proporciona json_extract, json_each y columnas generadas indexadas a partir de campos JSON.
  • MySQL —— un tipo de columna JSON nativo más expresiones de ruta y JSON_TABLE para hacer join de valores JSON como filas.

Dos recordatorios prácticos para todos: los enteros grandes pueden perder precisión a través del driver del cliente, y la spec JSON no define un orden canónico de claves —— si necesitas comparaciones o hashing deterministas, usa RFC 8785 (JCS).

Errores JSON comunes

Hasta los desarrolladores experimentados escriben JSON inválido. Los errores más comunes:

  • Comas finales tras el último elemento
  • Comillas simples en vez de dobles
  • Claves sin comillas
  • Comentarios JavaScript dentro del JSON
  • Valores estilo Python como True, False, None

Si tu JSON no parsea, arréglalo al instante online —— la herramienta repara automáticamente estos problemas y te muestra exactamente qué cambió.

Parsear JSON en código

Todos los lenguajes principales traen soporte JSON integrado:

// JavaScript
const obj = JSON.parse('{"name":"Alice","age":30}');
console.log(obj.name); // "Alice"

# Python
import json
obj = json.loads('{"name":"Alice","age":30}')
print(obj['name'])  # Alice

# Go
import "encoding/json"
var obj map[string]interface{}
json.Unmarshal([]byte(`{"name":"Alice","age":30}`), &obj)

Cómo leer un fichero JSON en Python (o read json file in python): usa json.load(open('data.json')) para una ruta de fichero, o json.loads(text) cuando el JSON ya es una cadena. Ambos lanzan json.JSONDecodeError ante errores de sintaxis.

La elección de JSON sobre XML en sistemas modernos suele reducirse a bytes por la red y soporte de parser —— todos los lenguajes soportan JSON nativamente, mientras que XML normalmente necesita una librería de terceros.

Variantes comunes de JSON que encontrarás

El JSON estricto es la línea base, pero hay algunos dialectos estrechamente relacionados que aparecen con regularidad:

  • JSONC (JSON con comentarios) —— JSON que permite comentarios // y /* */ y comas finales. tsconfig.json y el settings.json de VS Code lo usan. Los parsers estándar lo rechazan; usa un parser consciente de JSONC o quita los comentarios antes.
  • NDJSON / JSON Lines —— un valor JSON por línea, separados por \n. Usado para logs en streaming, datasets ML y APIs masivas. Parsea cada línea con JSON.parse, no el fichero entero.
  • JSON Pointer (RFC 6901) —— una sintaxis de ruta para direccionar un valor dentro de un documento, p. ej. /users/0/name. Es el formato de ruta usado por JSON Patch y por $ref de JSON Schema.

Preguntas frecuentes

¿Qué significa JSON?

JSON significa JavaScript Object Notation. A pesar del nombre, es independiente del lenguaje —— todos los lenguajes principales pueden leerlo y escribirlo —— y lo definen RFC 8259 y ECMA-404.

¿Cuáles son los tipos de datos en JSON?

Seis: cadena, número, booleano, null, objeto y array. No hay tipo entero separado, ni tipo fecha, ni undefined. Ver Ejemplos de formato JSON para cada uno en contexto.

¿JSON es lo mismo que un objeto JavaScript?

No. JSON es un formato de texto con reglas estrictas (claves entre comillas dobles, sin comas finales, sin comentarios); un literal de objeto JavaScript es código mucho más permisivo. Ver JSON vs objetos JavaScript.

¿Cómo compruebo que un JSON es válido?

Parséalo con JSON.parse() (lanza ante entrada inválida) o sigue Cómo validar JSON y pásalo por un validador. Para imponer estructura y tipos, descríbelo con JSON Schema.

Herramientas para trabajar con JSON

  • JSON Fix —— valida, repara y formatea JSON inválido al instante
  • ¿Qué es JSON Schema? —— describe y valida la estructura de los datos JSON
  • Cómo formatear JSON —— pretty-print en JavaScript, Python, línea de comandos o tu navegador
  • Ejemplos de formato JSON —— ejemplos copiables que cubren cada tipo de dato y patrón del mundo real
  • JSON Diff —— compara dos documentos JSON y ve qué cambió
  • YAML a JSON —— convierte configuración YAML a formato JSON