JSON es un formato ligero para el intercambio de datos. Es fácil de leer y escribir para los humanos, y fácil de analizar y generar para las máquinas. Se basa en un subconjunto del lenguaje de programación JavaScript, pero es completamente independiente del lenguaje, lo que significa que la mayoría de los lenguajes de programación modernos tienen funciones para crear, analizar y manipular datos JSON.
Características Clave:
- Ligero: Su sintaxis es concisa, lo que resulta en archivos de menor tamaño comparados con otros formatos como XML para la misma cantidad de datos.
- Legible: Utiliza una estructura de clave-valor que es intuitiva y fácil de entender.
- Independiente del Lenguaje: Aunque proviene de JavaScript, es ampliamente compatible con muchos lenguajes como Python, Java, C#, PHP, Ruby, etc.
- Basado en Texto: Los archivos JSON son archivos de texto plano, lo que facilita su almacenamiento, transferencia y depuración.
- Estructura Jerárquica: Los datos se organizan en una estructura anidada, similar a un árbol.
1. Estructura Básica de un Archivo JSON
JSON se construye sobre dos estructuras fundamentales:
- Colecciones de Pares Clave/Valor (Objetos): Representan objetos o registros. En JSON, esto se conoce como un objeto y se encierra entre llaves
{}
. Cada par clave/valor se separa con dos puntos:
, y los pares se separan entre sí con comas,
. Las claves siempre son cadenas de texto (entre comillas dobles).JSON{ "nombre": "Juan", "edad": 30, "ciudad": "Madrid" }
- Lista Ordenada de Valores (Arrays): Representan colecciones de elementos. En JSON, esto se conoce como un array y se encierra entre corchetes
[]
. Los elementos de un array se separan con comas,
. Los arrays pueden contener cualquier tipo de valor JSON, incluyendo otros objetos o arrays.JSON[ "manzana", "pera", "uva" ]
2. Tipos de Datos en JSON 📊
Un valor en JSON puede ser de los siguientes tipos:
- String (Cadena de texto): Una secuencia de caracteres Unicode encerrada entre comillas dobles.
"Hola Mundo"
- Number (Número): Un número entero o de punto flotante. No se usan comillas.
10
,3.14
,-5
- Boolean (Booleano): Un valor
true
ofalse
. No se usan comillas.true
,false
- Null: Un valor nulo que indica la ausencia de un valor.
null
- Object (Objeto): Una colección desordenada de pares clave/valor, encerrada en
{}
.{"clave": "valor"}
- Array (Array/Arreglo): Una lista ordenada de valores, encerrada en
[]
.["valor1", "valor2"]
Ejemplo Completo de un Archivo JSON:
{
"libreria": {
"nombre": "Biblioteca Central",
"ubicacion": "Calle Mayor 123",
"libros": [
{
"id": "101",
"titulo": "Cien Años de Soledad",
"autor": "Gabriel García Márquez",
"anio_publicacion": 1967,
"disponible": true,
"generos": ["ficcion", "realismo magico"]
},
{
"id": "102",
"titulo": "Cosmos",
"autor": "Carl Sagan",
"anio_publicacion": 1980,
"disponible": false,
"generos": ["ciencia", "divulgacion"],
"sinopsis": null
}
],
"total_libros": 2
}
}
3. Reglas de Sintaxis JSON 📏
Para que un archivo JSON sea válido, debe seguir estas reglas:
- Los datos están en pares de nombre/valor.
- Los datos están separados por comas.
- Los objetos están entre llaves
{}
. - Los arrays están entre corchetes
[]
. - Las claves (nombres de las propiedades) deben ser cadenas y estar entre comillas dobles.
- Los valores de tipo cadena también deben estar entre comillas dobles.
- Los comentarios no están permitidos en el formato JSON estándar. Si necesitas añadir notas, considera hacerlo en el código que genera o consume el JSON, o en un formato de documentación separado.
4. Uso de JSON en la Actualidad 🌐
JSON es ubicuo en el panorama tecnológico actual:
- APIs RESTful: La mayoría de las APIs web modernas utilizan JSON para enviar y recibir datos entre el cliente (navegador, aplicación móvil) y el servidor.
- Configuración: Muchas aplicaciones y herramientas utilizan archivos JSON para almacenar configuraciones (ej.
package.json
en Node.js,tsconfig.json
en TypeScript). - Bases de Datos NoSQL: Bases de datos como MongoDB y Couchbase almacenan datos en formatos similares a JSON (documentos BSON o JSON).
- Almacenamiento Local en Navegadores:
localStorage
ysessionStorage
en los navegadores web almacenan datos como cadenas, y JSON es comúnmente usado para serializar objetos complejos. - Mensajería y Streaming de Datos: En sistemas distribuidos, JSON se utiliza para formatos de mensajes.
5. Procesamiento de JSON ⚙️
Todos los lenguajes de programación modernos tienen bibliotecas integradas o de terceros para trabajar con JSON. Las operaciones comunes incluyen:
- Serialización (Marshalling/Encoding): Convertir un objeto o estructura de datos de un lenguaje de programación a una cadena JSON.
- Deserialización (Unmarshalling/Decoding): Convertir una cadena JSON a un objeto o estructura de datos utilizable en un lenguaje de programación.
Por ejemplo, en Python:
import json
# Serializar un objeto Python a JSON
datos = {
"nombre": "Ana",
"edad": 25,
"es_estudiante": True
}
json_string = json.dumps(datos, indent=4) # indent para formato legible
print(json_string)
# Deserializar una cadena JSON a un objeto Python
json_data = '{"producto": "Laptop", "precio": 1200}'
objeto_python = json.loads(json_data)
print(objeto_python["producto"])
¿Por qué se considera JSON más eficiente?
Que frameworks o bibliotecas utilizan JSON como formato de datos?
Ing cómo accedo a un valor dentro de un array en un JSON sin que dé error si no existe?
En qué situaciones se suele usar JSON en aplicaciones web