Toda aplicación web moderna, servicio de infraestructura en la nube y backend móvil depende de una lengua franca digital para intercambiar datos estructurados entre distintos entornos. Ese formato universal es JSON (JavaScript Object Notation).
1. Introducción e Historia
JSON fue popularizado a principios de los años 2000 por Douglas Crockford como una alternativa ligera y limpia a la complejidad excesiva de XML. Aunque se diseñó inspirándose en la sintaxis literal de objetos de JavaScript, JSON es totalmente independiente del lenguaje y está regulado por los estándares internacionales RFC 8259 y ECMA-404.
2. Los 6 Tipos de Datos Fundamentales
JSON define exactamente seis tipos de datos. Cualquier estructura que contenga tipos fuera de esta lista es un JSON inválido:
{ "userId": 101, "role": "admin" }[ "production", "staging", "dev" ]"Texto Unicode entre comillas dobles"42, 3.14159, -17, 1.2e5true, falsenull3. Reglas Estrictas de Sintaxis y Gramática
A diferencia de los motores permisivos de JavaScript, los analizadores de JSON aplican una gramática rigurosa:
- Comillas Dobles Obligatorias: Las claves de objetos y cadenas literales deben usar comillas dobles (
"clave"). Las comillas simples ('clave') provocan un error de sintaxis inmediato. - Sin Comas Finales: Las comas son estrictamente separadores de elementos. Una coma después del último elemento de una lista u objeto interrumpe el procesamiento.
- Sin Comentarios: El estándar JSON no admite comentarios de tipo
//o/* */.
4. Análisis por Árbol de Sintaxis Abstracta (AST)
Cuando un navegador ejecuta JSON.parse(), un escáner léxico determinista convierte los tokens de caracteres sin procesar en un Árbol de Sintaxis Abstracta (AST) en memoria. El analizador verifica llaves coincidentes y valida pares suplentes UTF-8 antes de instanciar objetos nativos.
5. JSON frente a XML y YAML
Mientras que XML destaca en entornos documentales con esquemas formales (XSD) y YAML se prefiere para configuraciones de DevOps, JSON sigue siendo el estándar supremo para API HTTP de alto rendimiento debido a su mínima sobrecarga de serialización y compatibilidad nativa en navegadores.
6. Seguridad y Buenas Prácticas
Nunca utilice eval() para analizar entradas JSON que no sean de confianza. Utilice siempre el método nativo JSON.parse(), que realiza una deserialización segura sin riesgo de ejecución arbitraria de scripts.