JSON (JavaScript Object Notation) es un formato ligero de intercambio de datos y es completamente independiente del lenguaje. Se basa en el lenguaje de programación JavaScript y es fácil de entender y generar.
XML (Extensible Markup Language, lenguaje de marcado extensible) fue diseñado para transportar datos, no para mostrar datos. Es una recomendación del W3C. Extensible Markup Language (XML) es un lenguaje de marcado que define un conjunto de reglas para codificar documentos en un formato que sea legible por humanos y por las máquinas. Los objetivos de diseño de XML se centran en la simplicidad, la generalidad y la usabilidad en Internet. Es un formato de datos textuales con un fuerte soporte a través de Unicode para diferentes idiomas humanos. Aunque el diseño de XML se centra en documentos, el lenguaje se usa ampliamente para la representación de estructuras de datos arbitrarias como las que se utilizan en los servicios web.
Ambos son autodescriptivos y pueden ser analizados y utilizados por muchos lenguajes de programación.
JSON es una forma de representar objetos. XML es un lenguaje de marcado y utiliza la estructura de etiquetas para representar elementos de datos.
Los archivos JSON son muy fáciles de leer en comparación con XML.
JSON solo admite la codificación UTF-8. XML admite varias codificaciones.