# JSON

> El formato de texto con el que los programas se pasan datos estructurados.

- Nivel: Básico
- Temas: Software
- URL: https://tidbit.legios.com.ar/es/json/
- En inglés: [JSON](https://tidbit.legios.com.ar/json/)

**JSON** (JavaScript Object Notation, se dice "yeison") es un formato de texto para escribir datos con estructura: nombres con valores, listas, y grupos anidados de eso. Un usuario puede ser `{"nombre": "Ana", "edad": 31, "idiomas": ["es", "en"]}`. Una persona lo puede leer, cualquier lenguaje de programación lo puede interpretar, y con una línea de código lo convertís en un objeto con el que trabajar.

Nació adentro de JavaScript a principios de los 2000 y se extendió porque es mucho más simple que XML, el formato que reemplazó. Hoy casi toda API web responde en JSON, muchos archivos de configuración son JSON (`package.json`, `tsconfig.json`), y bases como Amazon DynamoDB o MongoDB guardan documentos que son, en el fondo, JSON.

Tiene solo seis tipos de valor: texto, número, verdadero/falso, null, lista (`[...]`) y objeto (`{...}`). Sin fechas, sin comentarios, sin comas al final. Esa rigidez es lo que lo hace tan portable, y también por lo que una comilla faltante rompe el archivo entero. Cuando importa más el tamaño o la velocidad que la legibilidad, aparecen formatos binarios como Protocol Buffers o Parquet.

## Una analogía

Un formulario con casilleros rotulados. Cualquier empleado de cualquier oficina puede leer "Nombre: Ana, Edad: 31" porque los rótulos viajan con los valores, y un casillero puede contener otro formulario entero.

## Para quedarse

- Las claves son texto entre comillas dobles; los valores pueden ser texto, números, booleanos, null, listas u objetos.
- Es el formato de respuesta por defecto de las APIs web.
- Todos los lenguajes importantes traen un parser de JSON incorporado.
- Sintaxis estricta: una coma de más deja el archivo inválido.

## Para seguir leyendo

- [Introducción a JSON (json.org)](https://www.json.org/json-es.html)
- [Trabajar con JSON (MDN)](https://developer.mozilla.org/es/docs/Learn_web_development/Core/Scripting/JSON)
- [JSON (Wikipedia)](https://es.wikipedia.org/wiki/JSON)

## Términos relacionados

- [JavaScript](https://tidbit.legios.com.ar/es/javascript/): El lenguaje de programación que corre en las páginas web y las vuelve interactivas.
- [Lenguaje de programación](https://tidbit.legios.com.ar/es/programming-language/): Un idioma escrito y preciso que usamos para darle instrucciones a una computadora.
- [XML](https://tidbit.legios.com.ar/es/xml/): Un formato de texto que envuelve los datos en etiquetas con nombre, legible por todos.
- [API](https://tidbit.legios.com.ar/es/api/): El menú de cosas que un programa le deja pedir a otro programa.
- [Amazon DynamoDB](https://tidbit.legios.com.ar/es/amazon-dynamodb/): Una base de datos clave-valor que responde en milisegundos por más que crezca la tabla.
- [Parquet](https://tidbit.legios.com.ar/es/parquet/): Un formato que guarda tablas por columna y comprimidas, para que analizar lea mucho menos.
