JSON: La infraestructura invisible de internet

A medida que avanza el tiempo, hay tecnologías que llaman la atención y otras que operan en silencio como la verdadera infraestructura de internet, siendo JSON una de las segundas al mover datos sin parar entre teléfonos, servidores en la nube y sensores sin que nos demos cuenta. Esto resulta grandioso no por su popularidad, sino por su diseño y cómo una sintaxis tan simple logró convertirse en el estándar universal de comunicación digital, por lo que este artículo analiza su origen, su arquitectura técnica, su rendimiento frente a alternativas clásicas y por qué es el pilar del software moderno.

Para entender este impacto, es esencial revisar sus raíces. JSON son las siglas de JavaScript Object Notation, y no nació como un proyecto de estandarización, sino como un subproducto práctico. Douglas Crockford lo popularizó a comienzos de la década de 2000, tomando prestada la sintaxis de los literales de objeto de JavaScript para representar datos de forma compacta y legible por humanos y máquinas por igual. El propio sitio json.org sirvió como punto de difusión inicial en 2001, antes de que existiera ningún documento normativo (Ecma International, 2017).

Lo más interesante de su historia es cómo pasó de ser una simple costumbre de los desarrolladores a un estándar normativo en toda regla. Este proceso se dio en fases clave, teniendo el primer registro en el 2006, donde el programador informático estadounidense Douglas Crockford publicó el RFC 4627. Se trató de un documento oficial publicado que estandarizó por primera vez el formato de datos JSON en internet, introduciendo oficialmente el tipo application/json. En octubre de 2013, la asociación tecnológica encargada de crear estándares informáticos globales, Ecma International, publicó ECMA-404, separando definitivamente a JSON de cualquier dependencia técnica de JavaScript.

Su consolidación llegó en diciembre de 2017, cuando el grupo Internet Engineering Task Force, más conocido por sus siglas IETF, lanzó el RFC 8259, que es la especificación vigente hoy en día, y la organización internacional de normalización (ISO) lo adoptó mundialmente bajo la norma ISO/IEC 21778:2017 (ISO/IEC, 2017). Este camino de ser un acuerdo informal a lograr una triple estandarización es el responsable de la estabilidad de JSON. Al estar alineadas, estas tres instituciones garantizan que su gramática no sufrirá cambios que rompan la compatibilidad. Es una herramienta madura, sólida y lista para seguir sosteniendo la web.

Más allá de su evolución institucional, lo que hace especial a JSON desde la teoría de lenguajes formales radica en lo que decide omitir. Su diseño es un ejercicio de minimalismo extremo. Según Bray (2017), el estándar lo reduce todo a solo dos estructuras compuestas que son objetos (pares clave/valor) y arreglos (listas ordenadas), y cuatro tipos de datos primitivos que son texto, números, booleanos y nulos.

No vas a encontrar soporte nativo para fechas, comentarios ni referencias circulares. Esta simplicidad no es un defecto ni una limitación accidental; es una decisión de ingeniería increíble, ya que al mantener una superficie gramatical tan pequeña, se elimina el margen de interpretación. Esto garantiza que cualquier parser (analizador sintáctico) procese la información exactamente de la misma manera, evitando ambigüedades y fallos de compatibilidad entre distintos sistemas.

Gracias a esta solidez, JSON dejó de ser una simple alternativa para convertirse en infraestructura crítica dominando tres áreas clave. Empezando por las APIs REST, donde es el formato estándar de comunicación y define contratos enteros con OpenAPI. Pasando luego a las bases de datos NoSQL como MongoDB, que lo adoptaron de forma nativa para flexibilizar el manejo de información, superando las barreras del modelo relacional (Chodorow y Dirolf, 2010). Y llegando finalmente a la configuración de infraestructura y observabilidad, donde conecta y orquesta componentes muy diversos gracias a lo fácil que es de generar y procesar. Logrando con todo esto su mayor triunfo arquitectónico, que es actuar como un puente neutral de acoplamiento débil, permitiendo que un servicio en Python, otro en Go y otro en Java puedan comunicarse a la perfección sin tener que preocuparse en absoluto por cómo están construidos por dentro.

Para ser directo y técnicamente honesto, debo decir que ningún formato es perfecto y JSON tiene limitaciones claras que no podemos ignorar. Comenzando por la falta de un tipo de dato nativo para fechas, lo que nos obliga a usar texto o marcas numéricas dejando el trabajo de interpretación al sistema que recibe los datos. A esto se suma que no permite comentarios, haciendo bastante tedioso su uso para configuraciones manuales a menos que recurramos a variantes como JSON5. Además, presenta riesgos reales de seguridad ya que una mala deserialización al convertir los datos en objetos puede abrir la puerta a vulnerabilidades de ejecución remota de código, pues la misma especificación nos advierte que la seguridad recae por completo en nuestra implementación (Bray, 2017). Finalmente, su falta de soporte para datos binarios nos fuerza a usar codificaciones como Base64 que terminan inflando el tamaño del archivo, y aunque nada de esto ha frenado su éxito mundial, cualquier arquitecto de sistemas serio tiene la obligación de evaluar estos riesgos antes de asumir que JSON es una solución mágica o completamente inofensiva.

Referencias

    Bray, T. (Ed.). (2017). RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format. Internet Engineering Task Force (IETF). https://doi.org/10.17487/RFC8259
Chodorow, K., y Dirolf, M. (2010). MongoDB: The Definitive Guide. O'Reilly Media.
    Crockford, D. (2006). RFC 4627: The application/json Media Type for JavaScript Object Notation (JSON). Internet Engineering Task Force (IETF). https://www.rfc-editor.org/rfc/rfc4627
Crockford, D. (2008). JavaScript: The Good Parts. O'Reilly Media.
    Ecma International. (2017). Standard ECMA-404: The JSON Data Interchange Syntax (2.ª ed.). https://ecma-international.org/publications-and-standards/standards/ecma-404/
ISO/IEC. (2017). ISO/IEC 21778:2017 — Information technology — The JSON data interchange syntax. International Organization for Standardization. https://www.iso.org/standard/71616.html
    Nurseitov, N., Paulson, M., Reynolds, R., y Izurieta, C. (2009). Comparison of JSON and XML data interchange formats: A case study. Proceedings of the 22nd International Conference on Computer Applications in Industry and Engineering (CAINE 2009), 157–162. https://www.cs.montana.edu/izurieta/pubs/caine2009.pdf
    Wright, A., Andrews, H., Hutton, B., y Dennis, G. (2022). JSON Schema: A Media Type for Describing JSON Documents (Internet-Draft draft-bhutton-json-schema-01). Internet Engineering Task Force (IETF). https://json-schema.org/draft/2020-12/json-schema-core

Anexos

Descargar PDF