Potential ambiguity is a mess

The idea behind data format standards is to ensure that disparate tools can communicate using a common “language.”  When the standard includes potential ambiguity, things get messy.

A case in point is JSON (Javascript Object Notation).  The standard for escaping characters in strings looks like this:

In English, that says that the only characters that must be escaped are quote (“), backslash¹ (\), and control characters.  An escaped character starts with backslash and the following character(s) must be one of those identified.  That’s all good except for one item:  the “solidus” (/).  That character can be escaped, but it does not have to be.  So in a string, “/” and “\/” mean the same thing.

Why?  The potential ambiguity here is the exception to the rule.  Somebody implementing a JSON processor might easily interpret that to mean that the slash (I’m sorry, “solidus”) must be escaped.

¹”solidus”? Learn something new every day. It’s too bad that they didn’t come up with a unique name for “\”.  “Reverse solidus” is harder to say than “backslash.”

Comments are closed.



A sample text widget

Etiam pulvinar consectetur dolor sed malesuada. Ut convallis euismod dolor nec pretium. Nunc ut tristique massa.

Nam sodales mi vitae dolor ullamcorper et vulputate enim accumsan. Morbi orci magna, tincidunt vitae molestie nec, molestie at mi. Nulla nulla lorem, suscipit in posuere in, interdum non magna.