On 05/20/2010 02:22 PM, Luiz Capitulino wrote:
On Thu, 20 May 2010 13:52:08 -0500
Anthony Liguori<anth...@codemonkey.ws>  wrote:

On 05/20/2010 01:47 PM, Luiz Capitulino wrote:
On Thu, 20 May 2010 11:55:00 -0500
Anthony Liguori<anth...@codemonkey.ws>   wrote:


On 05/20/2010 11:27 AM, Luiz Capitulino wrote:

On Thu, 20 May 2010 10:50:41 -0500
Anthony Liguori<anth...@codemonkey.ws>    wrote:



On 05/20/2010 10:16 AM, Paolo Bonzini wrote:


On 05/20/2010 03:44 PM, Luiz Capitulino wrote:


     I think there's another issue in the handling of strings.

     The spec says that valid unescaped chars are in the following range:

        unescaped = %x20-21 / %x23-5B / %x5D-10FFFF


That's a spec bug IMHO.  Tab is %x09.  Surely you can include tabs in
strings.  Any parser that didn't accept that would be broken.


    Honestly, I had the impression this should be encoded as: %x5C %x74, but
if you're right, wouldn't this be true for other sequences as well?


I don't think most reasonable clients are going to quote tabs as '\t'.

   That would be a bug, wouldn't it?

Tabs are valid in JavaScript strings and I don't think it's reasonable
to expect that a valid JavaScript string is not a valid JSON string.
  IMO, we should do what the spec says and what bug free clients expect,
what we consider reasonable or unreasonable is a different matter.

How we encode strings is one thing, what we accept is something else.

Why shouldn't we be liberal in what we accept? It doesn't violate the spec to accept more than it requires so why shouldn't we?

Regards,

Anthony Liguori

  I would be with you if the spec was proved wrong, specially if reference
implementations out there didn't follow it either, but everything I found
so far shows this is not the case.

  Another example:

    http://www.json.org/json2.js

  Search for 'character substitutions'.




Reply via email to