Examining JSON
I find it amusing that in all of the recent JSON[-RPC] vs XML[-RPC] discussion, I see a lot of opinions, but I don’t see a single instance where the actual wire level bits were examined, let alone be analyzed.
Here’s an example from the now deprecated Google SOAP interface. The equivalent in JSON-RPC would be:
{
  "method": "googleGateway.search",
  "params":
    [
      "absurd obfuscation",
      0,
      10,
      1,
      "",
      "",
      0,
      "latin1",
      "latin1",
      "00000000000000000000000000000000"
    ]
}
Alternately, if one wishes to preserve the named parameter association of the original SOAP interface, you would end up with something like this:
{
  "method": "doGoogleSearch",
  "params":
    [
      {
	"key": "00000000000000000000000000000000",
	"q": "absurd obfuscation",
	"start": 0,
	"maxResults": 10,
	"filter": "true",
	"restrict": "",
	"safeSearch": "false",
	"lr" : "",
	"ie": "latin1",
	"oe": "latin1"
      }
    ]
}
I’ve seen enough character encoding errors in allegedly XML content to say that unlike Tim, I don’t see that as a slam-dunk reason to prefer XML in order to improve your chances for interop on the web.
The advantage I see to JSON is when you don’t really have a need to be redundantly self-descriptive, an example being Planet Intertwingly’s memes.json.