intertwingly

It’s just data

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.