Qué es JSON: formato, ejemplos y cómo abrir un archivo .json

Por Redacción Alhures ·

Código con estructuras de datos en una pantalla

Si alguna vez has trabajado con datos en aplicaciones web, seguro que te has preguntado qué es JSON. JSON (JavaScript Object Notation) es un formato ligero para intercambiar información que se ha convertido en el estándar de facto para mover datos entre servidores y aplicaciones. Su simplicidad y facilidad de lectura lo hacen ideal tanto para desarrolladores como para autónomos o pymes que necesitan conectar sus sistemas.

Aquí verás de dónde viene, cómo se escribe, los errores que lo rompen, cómo abrir un archivo .json y cómo filtrarlo desde la terminal con jq.

Origen e historia de JSON

JSON nació a principios de los 2000 de la mano de Douglas Crockford. Aunque su sintaxis se basa en JavaScript, es un formato de texto completamente independiente del lenguaje. Crockford lo popularizó como alternativa más ligera a XML para el intercambio de datos en aplicaciones web.

Hoy en día, prácticamente todas las APIs modernas devuelven sus respuestas en JSON. Su adopción ha sido tan masiva que la mayoría de lenguajes de programación tienen soporte nativo o librerías muy maduras para leerlo y generarlo.

Si quieres conocer más detalles sobre su historia, puedes consultar la entrada de Wikipedia sobre JSON o la web oficial en json.org.

Sintaxis de JSON: objetos, arrays y tipos de datos

La estructura de JSON se basa en dos elementos principales: objetos y arrays.

  • Objeto: Se delimita con llaves { }. Contiene pares de clave-valor separados por comas. Las claves siempre deben ir entre comillas dobles.
  • Array: Se delimita con corchetes [ ]. Contiene una lista ordenada de valores (pueden ser de cualquier tipo, incluso otros objetos o arrays).

Los tipos de valores permitidos son:

  1. Strings (entre comillas dobles)
  2. Números (enteros o decimales)
  3. Booleanos (true o false)
  4. null
  5. Objetos
  6. Arrays

Ejemplo práctico: un objeto «libro»

Aquí tienes un ejemplo realista de cómo sería un archivo JSON que representa información de un libro:

{
  "titulo": "Cien años de soledad",
  "autor": "Gabriel García Márquez",
  "anio": 1967,
  "generos": ["Realismo mágico", "Literatura latinoamericana"],
  "disponible": true,
  "precio": 12.50,
  "subtitulo": null,
  "primera_edicion": {
    "anio": 1967,
    "editorial": "Sudamericana",
    "pais": "Argentina"
  }
}

Este ejemplo muestra la mayoría de las posibilidades de JSON: strings, números, booleanos, null, arrays y objetos anidados. Fíjate que todas las claves llevan comillas dobles y que no hay coma después del último valor de cada objeto o array.

Errores típicos que invalidan un JSON

Muchos errores comunes hacen que un archivo .json deje de ser válido. Aquí tienes los más frecuentes con su corrección:

1. Coma final (trailing comma)

Incorrecto:

{
  "titulo": "El Quijote",
  "autor": "Cervantes",
}

Correcto:

{
  "titulo": "El Quijote",
  "autor": "Cervantes"
}

2. Uso de comillas simples

Incorrecto:

{
  'titulo': '1984',
  'autor': 'Orwell'
}

Correcto:

{
  "titulo": "1984",
  "autor": "Orwell"
}

3. Incluir comentarios

Incorrecto:

{
  "titulo": "Fahrenheit 451",
  // Este es un comentario
  "autor": "Bradbury"
}

JSON no permite comentarios. Si necesitas documentar, hazlo fuera del archivo o usa otro formato durante el desarrollo.

Estos errores son tan habituales que la mayoría de editores de código te avisan en tiempo real cuando tu JSON es inválido.

Dónde te vas a encontrar JSON

JSON aparece en muchísimos sitios del día a día de cualquier desarrollador, autónomo o curioso que trastea con tecnología. Lo más habitual es verlo en archivos de configuración. El famoso package.json de los proyectos de Node.js o el archivo de ajustes de VS Code son dos ejemplos claros: guardan dependencias, scripts, preferencias de editor y extensiones en un formato que cualquier herramienta puede leer sin complicaciones.

Otra situación muy común son las respuestas de las APIs. Cuando una aplicación móvil o una web pide datos a un servidor, lo normal es que reciba la información en JSON. Es ligero, fácil de procesar y lo entienden tanto JavaScript como la mayoría de lenguajes de programación.

También te lo encuentras cuando descargas una copia de tus datos de redes sociales o servicios online. Instagram, X (antes Twitter) o Google suelen ofrecer la opción de “descargar tus datos” y el resultado suele venir en varios archivos JSON organizados por carpetas. Es una forma limpia y legible de entregarte tu historial, publicaciones o contactos.

Una variante interesante es JSON Lines (también llamado NDJSON). En lugar de un gran objeto con muchos elementos, cada línea del archivo es un JSON independiente. Se usa mucho para registros y logs porque permite añadir información línea a línea sin tener que cargar todo el archivo en memoria. Un ejemplo sencillo sería:

{"timestamp": "2026-10-05T10:23:15", "level": "info", "message": "Usuario inició sesión"}
{"timestamp": "2026-10-05T10:23:47", "level": "error", "message": "Fallo al conectar con la base de datos"}

Por último, JSON Schema es una forma de describir cómo debe ser un documento JSON válido. Define qué campos son obligatorios, de qué tipo deben ser, qué valores pueden tener o incluso patrones de texto. Es como un contrato que asegura que los datos que recibes o generas siguen la estructura esperada, evitando errores tontos más adelante.

Leer y escribir JSON en Python y JavaScript

En Python es muy sencillo gracias al módulo json que viene incluido. Para leer un archivo usas json.load() y para convertir un diccionario a texto usas json.dumps(). El parámetro ensure_ascii=False es útil cuando trabajas con acentos o emojis para que no los convierta en secuencias extrañas.

import json

# Leer
with open("datos.json", encoding="utf-8") as f:
    datos = json.load(f)

# Escribir
with open("salida.json", "w", encoding="utf-8") as f:
    json.dump(datos, f, ensure_ascii=False, indent=2)

En JavaScript, tanto en el navegador como en Node.js, dispones de los métodos JSON.parse() y JSON.stringify(). El segundo acepta un tercer parámetro para añadir sangría y que el resultado sea más legible. Es tan habitual que casi nadie se para a pensar lo cómodo que resulta.

// Leer (cadena a objeto)
const datos = JSON.parse(textoJSON);

// Escribir (objeto a cadena con formato)
const texto = JSON.stringify(datos, null, 2);
console.log(texto);

JSON frente a XML y CSV

Cada formato tiene su uso ideal. Esta tabla te ayuda a decidir cuándo usar cada uno:

Característica JSON XML CSV
Legibilidad humana Muy alta Media Alta (en datos planos)
Tamaño del archivo Pequeño Grande (etiquetas) Muy pequeño
Estructuras anidadas Sí (objetos y arrays) Sí No
Tipos de datos nativos Sí No (todo texto) No
Uso principal APIs y configuración Documentos y SOAP Datos tabulares e importación
Soporte en bases de datos Excelente (muchas bases de datos modernas lo soportan nativamente) Bueno Básico

Como ves, JSON gana en la mayoría de escenarios modernos, especialmente cuando trabajas con interfaces de programación de aplicaciones.

Cómo abrir y validar un archivo .json

Existen varias formas sencillas de trabajar con archivos JSON:

1. En el navegador

Arrastra el archivo .json a Chrome, Firefox o Edge. El navegador lo mostrará formateado automáticamente. Para validarlo rápidamente, puedes usar herramientas online como JSONLint (aunque para trabajo serio es mejor usar herramientas locales).

2. Con un editor de código

Visual Studio Code, Sublime Text o cualquier editor moderno reconocen la extensión .json automáticamente. VS Code te ofrece:

  • Formateo automático (Mayús + Alt + F)
  • Validación en tiempo real
  • Coloreado de sintaxis
  • Autocompletado básico

Si tienes Node.js instalado, también puedes validar desde terminal con:

node -e "console.log(JSON.parse(require('fs').readFileSync('datos.json', 'utf8')))"

jq: la navaja suiza de línea de comandos para JSON

Cuando trabajas habitualmente con JSON desde la terminal, jq se convierte en una herramienta indispensable. Es un procesador de JSON ligero y muy potente que permite filtrar, transformar y extraer datos sin escribir código.

Puedes descargarlo desde su página oficial: jqlang.org.

Aquí tienes algunos ejemplos prácticos:

Ejemplo 1: Extraer un campo concreto

jq '.titulo' libro.json

Ejemplo 2: Filtrar arrays con condiciones

jq '.productos[] | select(.precio < 20)' productos.json

Ejemplo 3: Crear nuevo JSON transformado

jq '{nombre: .nombre, edad: .edad, activo: .activo}' usuario.json

jq es especialmente útil cuando consumes APIs desde scripts: puedes encadenar la descarga de datos con un filtro y quedarte solo con los campos que te interesan.

Si programas en JavaScript, la documentación de Mozilla explica muy bien cómo trabajar con JSON en ese lenguaje: JSON en MDN.

JSON es el formato que une la mayoría de servicios web actuales. Una vez que domines su sintaxis y las herramientas que lo rodean (editores, jq, librerías de tu lenguaje favorito), estarás preparado para consumir y crear APIs, configurar aplicaciones y mover datos entre sistemas de forma eficiente.

El siguiente paso natural es practicar creando tus propios archivos .json y consumir alguna API pública. Empieza por algo sencillo: una lista de tareas o un catálogo de productos. Con un par de ejercicios verás que leerlo y escribirlo se vuelve automático.

Imagen: rawpixel, CC0, vía rawpixel.

Sobre Alhures. Explicamos software y tecnología sin jerga. Revisamos y actualizamos los artículos cuando algo cambia. ¿Has visto un error? Escríbenos. Cómo trabajamos.

Sigue leyendo