Comparing XML and JSON: What’s the Difference?
XML makes use of named tags to describe data, while JSON uses key/value pairs. Both formats are text-based, unlike some that are encoded, such as protocol buffers. Both formats are self-describing and often used to store configuration data in software.
Schema and namespaces
Both XML and JSON are schema-less formats with the option to associate a schema. XML has W3C specification for a Schema, while JSON doesn’t. XML also supports namespaces while JSON doesn’t. Several NoSQL databases that support unstructured data use JSON or binary JSON as the storage format.
JSON offers better support for bowser clients, as all browsers support its encoding and decoding. XML is also supported by most browsers, but different browsers provide their own implementation. For example, the XMLHttpRequest object is implemented differently by IE and Mozilla.
JSON supports fewer data types but covers most types commonly used: string, number, object, array, boolean, and null. JSON doesn’t support any data types for date and time. Another notable omission is support for comments in a JSON file. XML offers a wider selection of data types; in fact, a complete W3C Draft is based on XML schema data types.
One of the most popular types of applications that use these data formats is web services. SOAP web services use XML for messaging or data exchange in request and response. The web service itself is described as a WSDL document, which is again an XML document.
REST is more flexible in terms of data format, as it supports JSON in addition to XML. REST + JSON have replaced SOAP + XML web services to a great extent.
Because of the advantages of JSON in web services several new JSON-based formats and protocols have been developed, including JSON streaming for stream protocols, JSON-RPC for remote procedure call, and BSON for binary JSON. A markup language called JsonML has also been developed to map between XML and JSON.
W3C standards support
XML has several W3C standards, including XML Query, XPath, XML Schema, XSLT, and XForms. JSON doesn’t have many W3C standards, although it does have JSON-LD for linked data.
Advantages and drawbacks
Data stored or exchanged as JSON is more compact or lightweight than XML, as it has fewer formatting requirements. An XML document must start with an XML processing instruction and be well-formed, meaning all start tags must end with corresponding end tags.
As JSON has less extraneous information associated with it, it is also easier and faster to parse. XML is verbose, and Document Object Model (DOM) XML parsing APIs must construct the complete DOM structure and navigate the XML tag hierarchy to get data stored by an XML document.