He leído en varias fuentes que comparan JSON con XML y me queda claro que alguna información es bastante vieja por lo que decidí escribir al respecto, ¿será verdad que uno es mejor que otro?, ¿bajo qué circunstancias será realmente mejor y en cuales no tanto?, vamos a comparar:
SINTAXIS: Ambas son notaciones con una sintaxis bastante sencilla de aprender y también de leer tanto por las personas como por las máquinas, podemos decir que en este punto están empatadas.
PESO DE ARCHIVOS: En este punto sus archivos son muy similares también, ambos formatos comparados tienen pesos aproximadamente iguales.
CONSULTAS: En XML, con el uso de Xpath se puede tener acceso a partes de la estructura de datos mientras que para JSON no existe una herramienta para tal cosa. Explicado de otra manera, si buscas un dato en XML puedes acceder al dato directamente pero en JSON tendrías que recorrer los datos para encontrar el que buscas. ¡Punto para XML!
FORMATO DE DATOS: Si quieres pasar XML a un formato como HTML, texto plano o incluso JSON lo puedes hacer usando plantillas XSLT (EXtensible Stylesheet Language) y listo! Mientras que para JSON no es tan fácil, claro que se puede hacer pero no hay una «ayudita» particular que mencionar.
SEGURIDAD: En este punto hay quienes dicen que JSON es más inseguro debido a que está basado en JavaScript y no tiene un «parser» de navegador (el analizador sintáctico del lenguaje-porque no es un lenguaje) como XML pero desde mi particular punto de vista la seguridad de ambos depende con qué lenguaje lo utilices y cómo los utilices.
USO: Para documentos XML tiene la capacidad de permitir incluir tipos de datos como imágenes, tablas y gráficos, transferir la estructura de estos datos mientras que JSON solo permite la transferencia de datos sin formato por lo cual en el caso de documentos, con estos elementos de datos, XML es mejor.
A mi parecer XML es un tanto menos legible por «los mortales» que JSON debido a su estructura anidada (a mi aún me enredan algunos documentos…), sin embargo, el hecho que permita consultas y la inclusión de tipos de datos lo hacen un lenguaje importante para trabajar con documentos. No pienso que XML vaya a desaparecer, más bien seguirán usándolo en casos particulares mientras que JSON por su compatibilidad y características de comunicación será cada vez más usado combinado con distintas tecnologías. ¿Cuál es el mejor? sencillamente el que solucione las necesidades de lo que tengas que hacer, por eso debes definir bien lo que deseas hacer y después investigar a fondo las herramientas que te ayudarán, uno nunca sabe, tal vez hasta tengas que usar los dos en el mismo proyecto 😉
Un dato curioso que encontré en un estudio estadístico realizado a más de 500 profesionales de TI el año pasado (DZone’s 2014 Enterprise Integration Survey) es que a la pregunta ¿Con qué protocolos o lenguajes te encuentras más cómodo? la mayoría indicó que con JSON (55%) y el resto XLM (45%), aunque no es mucha la diferencia si inclina un poco la balanza… ¿tú que opinas?
Nos seguimos leyendo…
2 ideas sobre “JSON vs XML”
De acuerdo en todo menos en la parte de con el uso de Xpath se puede tener acceso a partes de la estructura de datos mientras que para JSON no existe una herramienta para tal cosa como mencioné en otro comentario con librerias como JSONObject puedes manipular la información fácilmente, incluso me atrevería a decir que más fácil que con XML.
La diferencia en peso de información, es proporcional a la cantidad de información enviada. En un ejemplo que vi en el cual hacen competir xml con json en webservices, de plano lo que hacen es enviar un solo elemento xml separado internamente por comas y una vez llegado a su destino parsean los strings correspondientes.
Hola Jesus, gracias por tu comentario. Tal vez no me expliqué bien, mi punto es que con XML puedes consultar un dato DIRECTAMENTE usando el Xquery («sin recorrerlo») y con el JSONObject tendrías que recorrerlo (iterarlo) para obtener el dato.
En cuanto a los web Services, definitivamente es mejor JSON porque la representación de datos es más sencilla que con XML. Como mencioné la tendencia de uso va más cargada a JSON, quizá no se ha definido completamente hacia ese formato porque no existe un estándar definitivo para escribir un esquema. Pero el uso de uno u otro finalmente depende de tus necesidades.