Why use JSON over XML?

Sam Deering

There are times when you may be unsure what format to choose when transmiting data between a server and web application. Here are a few reasons why you might choose to use JSON rather than XML and a few why you might choose XML rather than JSON.

Background Information

What is JSON?

JavaScript Object Notation (JSON) is a lightweight text-based open standard designed for human-readable data interchange. It is derived from the JavaScript programming language for representing simple data structures and associative arrays, called objects. Despite its relationship to JavaScript, it is language-independent, with parsers available for most programming languages.
Further reading: http://en.wikipedia.org/wiki/Json

What is XML?

Extensible Markup Language (XML) is a set of rules for encoding documents in machine-readable form. XML’s design goals emphasize simplicity, generality, and usability over the Internet.
Further reading: http://en.wikipedia.org/wiki/XML

Reasons to choose JSON over XML

  1. JSON requires less tags than XML – XML items must be wrapped in open and close tags whereas JSON you just name the tag once
  2. Because JSON is transportation-independent, you can just bypass the XMLHttpRequest object for getting your data.
  3. JavaScript is not just data – you can also put methods and all sorts of goodies in JSON format.
  4. JSON is better at helping procedural decisions in your JavaScript based on objects and their values (or methods).
  5. You can get JSON data from anywhere, not just your own domain. There’s no more proxy server nonsense.
  6. Yahoo has a really good YUI2 JSON API.
  7. JSON is easier to read than XML – Obviously a personal preference

Reasons to choose XML over JSON

  1. Easy to take XML and apply XSLT to make XHTML.
  2. XML is supported by many more desktop applications than JSON.
  3. JSON can be put in the XML on the way back to the client – the benefit of both! It’s called XJAX (stands for X-domain JavaScript And XML).
  4. Simply, AJAX includes XML in it and not JSON.

Still can’t decide? Flip a coin or use a JSON/XML converter.

Win an Annual Membership to Learnable,

SitePoint's Learning Platform