What I like about JSON is that it is Javascript "native". It's trivial to consume in Javascript code. And if you get your Mime-type right, jQuery will just hand you a Javascript object instead of the raw JSON.
For XML, you would need to use some add-on library, right? (Or parse-out the parts you want.)
Back-end languages usually have an easy way of creating JSON from native data structure. So, in Ruby, it's as simple as taking some complex data structure you've created in Ruby and simply applying .toJSON() to it, and you are ready to ship it off to Javascript.
Both sides get to work with native objects, and a simply-applied conversion function gets the transport converted.
If you've got a web service that can only provide XML, you are stuck with XML. If you are writing your own, I'd prefer to use either JSON or HTML, as appropriate. Unless you really, really need your front-end to make decisions on HTML structure, let the server do the work.
Of course, if you need to make a web service that will be consumed by others, who might have their own ideas about HTML structure, of course you need to serve some neutral data format.
A good editor will have plugins to help you edit either JSON or XML.
And, of course, this is one of the classic religious wars. I'd like to destroy the heathen XML. ;) I find JSON eminently easier to consume and create, whether in Javascript or Ruby.
XML does have the advantage of having DTDs, which, when used properly (which means using some huge library...) helps with issues of API versioning and adding new data to APIs without hurting old clients. But it is infinitely more complex to deal with.