¿Qué es JSON?
JSON (JavaScript Object Notation) es un formato liviano basado en texto para guardar e intercambiar datos estructurados. Se derivó de la sintaxis de objetos de JavaScript, pero hoy es independiente del lenguaje — prácticamente cualquier lenguaje de programación puede interpretarlo y generarlo. JSON es el formato de datos por defecto para APIs REST, archivos de configuración de aplicaciones web, almacenamiento del navegador (localStorage), y la mayoría de las bases de datos y servicios en la nube modernos.
Un archivo JSON es cualquier archivo de texto plano que contiene datos JSON válidos, normalmente con extensión .json. Ejemplos comunes: package.json (configuración de proyectos Node.js), tsconfig.json (configuración de TypeScript), y respuestas de API guardadas en disco para depuración o pruebas.
Sintaxis de JSON: objetos, arreglos y corchetes
JSON tiene dos tipos de contenedor que se confunden fácilmente:
- Objetos
{ }— llaves: una colección de pares clave-valor. Las claves deben ser cadenas entre comillas dobles. Ejemplo:{"name": "Alice", "age": 30} - Arreglos
[ ]— corchetes: una lista ordenada de valores. Los valores pueden ser de cualquier tipo JSON — cadenas, números, booleanos, nulos, objetos u otros arreglos. Ejemplo:["red", "green", "blue"]
La confusión más común es usar corchetes cuando hace falta usar llaves, o viceversa. Usa [ ] cuando tengas una lista de cosas; usa { } cuando tengas propiedades con nombre. Los arreglos y objetos se pueden anidar libremente: {"colors": ["red", "green"]} es un objeto con un valor de tipo arreglo.
Pretty-print vs. minificar
El pretty-print (formatear) agrega sangría y saltos de línea consistentes para que el JSON sea legible — útil para depurar, revisar respuestas de API y leer archivos de configuración. Minificar elimina todos los espacios en blanco para producir la representación más compacta posible, lo que reduce el tamaño al transmitir JSON por red. Los datos son idénticos en ambos casos; solo cambian los espacios en blanco.
Escapado de JSON
La acción de escapar convierte una cadena JSON en una versión segura para incrustar dentro de otro literal de cadena JSON — las comillas dobles se convierten en \", las barras invertidas en \\, y los caracteres de control se reemplazan por sus secuencias de escape (\n, \t, etc.). Esto es útil al construir payloads JSON-dentro-de-JSON o al serializar JSON para guardarlo en un campo de base de datos. Quitar el escape revierte el proceso.
Errores comunes de validación de JSON
- Comas finales — JSON no permite una coma después del último elemento de un arreglo u objeto (a diferencia de JavaScript).
{"a": 1,}no es válido. - Comillas simples — JSON exige comillas dobles para todas las cadenas y claves de objeto.
{'key': 'value'}no es válido. - Comentarios — JSON no tiene sintaxis de comentarios. Tanto
//como/* */provocan errores de análisis. - Claves sin comillas — todas las claves de un objeto deben ser cadenas entre comillas.
{key: "value"}no es válido. - Números no finitos —
Infinity,-InfinityyNaNno son valores JSON válidos.
JSON5 y JSONC
Si tu archivo de configuración usa comentarios o comas finales, probablemente sea JSON5 o JSONC (JSON con comentarios) en vez de JSON estricto. Estos formatos extienden la sintaxis de JSON para archivos escritos por personas y necesitan su propio parser — no son JSON estándar válido y fallarán con una llamada normal a JSON.parse().
Preguntas frecuentes
¿Cuál es la diferencia entre [] y {} en JSON?
Los corchetes [] crean un arreglo JSON — una lista ordenada de valores. Las llaves {} crean un objeto JSON — un conjunto de pares clave-valor con nombre. Usa arreglos para listas de cosas (elementos, resultados, etiquetas); usa objetos para registros con propiedades con nombre (un usuario, una configuración, un evento).
¿Qué es un archivo JSON?
Un archivo JSON es cualquier archivo de texto plano que contiene datos JSON válidos, generalmente guardado con extensión .json. Ejemplos comunes: package.json, tsconfig.json, respuestas de API guardadas para pruebas, y configuraciones de aplicaciones. Los archivos JSON se pueden abrir en cualquier editor de texto y analizar con la librería estándar de cualquier lenguaje.
¿Cuál es la diferencia entre un JSON formatter y un JSON beautifier?
Son lo mismo — distintos nombres para la misma operación. "Formatear", "pretty-print" y "beautify" significan lo mismo: agregar sangría y saltos de línea para que el JSON sea más fácil de leer. Esta herramienta hace las tres cosas, además de minificar (compactar), validar y escapar JSON.
¿Por qué mi JSON no pasa la validación?
Las causas más comunes: una coma final después de la última propiedad o elemento de un arreglo, comillas simples en vez de dobles, claves de objeto sin comillas, comentarios en el archivo (// o /* */), o una cadena/número suelto donde se espera un objeto o arreglo. Pega tu JSON arriba y haz clic en Validar — el mensaje de error señalará la línea y el carácter exactos.
¿Cuál es la diferencia entre JSON y XML?
JSON y XML representan datos estructurados, pero JSON es más compacto, más fácil de leer, y tiene soporte nativo en JavaScript. XML usa etiquetas de apertura y cierre (<name>value</name>) y admite atributos y namespaces — lo que lo hace más detallado pero más expresivo para datos orientados a documentos. Las APIs REST casi siempre usan JSON; algunos servicios SOAP más antiguos y ciertos formatos de configuración (Maven, recursos de Android) todavía usan XML.