views:

1021

answers:

3

I'm new to web services and as an introduction I'm playing around with the Twitter API using the Twisted framework in python. I've read up on the different formats they offer, but it's still not clear to me which one I should use in my fairly simple project. Specifically the practical difference between using JSON or XML is something I'd like guidance on. All I'm doing is requesting the public timeline and caching it locally.

Thanks.

+3  A: 

RSS and Atom are XML formats.

JSON is a string which can be evaluated as Javascript code.

Adrian Lang
XML is also be a string. JSON is an other way of representing complex data without much of the overhead that xml uses. It happens to be compatible with the Javascript datatype which gives a hint about the J in the name ;-).
Gamecat
And about the S in the name also.
Pukku
It also just happens to be a heck of a lot simpler and more human-readable as well, imo, and is a lot more concise.
chaiguy
+1  A: 

I would say the amount of data being sent over the wire is one factor. XML datastream will be bigger than JSON for the same data. But you can use whatever you know more/have more experiance. I would reccoment JSON, as it's more "pythonic" than XML.

jinzo
+5  A: 

For me it boils down to convenience. Using XML, I have to parse the response in to a DOM (or more usually an ElementTree). Using JSON, one call to simplejson.loads(json_string) and I have a native Python data structure (lists, dictionaries, strings etc) which I can start iterating over and processing. Anything that means writing a few less lines of code is usually a good idea in my opinion.

I often use JSON to move data structures between PHP, Python and JavaScript - again, because it saves me having to figure out an XML serialization and then parse it at the other end.

And like jinzo said, JSON ends up being slightly fewer bytes on the wire.

You might find my blog entry on JSON from a couple of years ago useful: http://simonwillison.net/2006/Dec/20/json/

Simon Willison