|
From: | Anthony Liguori |
Subject: | Re: [Qemu-devel] Re: [PATCH 2/6] json-lexer: Handle missing escapes |
Date: | Mon, 24 May 2010 14:29:58 -0500 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.1.5) Gecko/20091209 Fedora/3.0-4.fc12 Lightning/1.0pre Thunderbird/3.0 |
On 05/20/2010 02:22 PM, Luiz Capitulino wrote:
On Thu, 20 May 2010 13:52:08 -0500 Anthony Liguori<address@hidden> wrote:On 05/20/2010 01:47 PM, Luiz Capitulino wrote:On Thu, 20 May 2010 11:55:00 -0500 Anthony Liguori<address@hidden> wrote:On 05/20/2010 11:27 AM, Luiz Capitulino wrote:On Thu, 20 May 2010 10:50:41 -0500 Anthony Liguori<address@hidden> 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-10FFFFThat'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'.
[Prev in Thread] | Current Thread | [Next in Thread] |