IE8 does correctly process:
JSON.parse("\"foo\"")
I just tried it and it worked fine. There are a few discrepancies between the
IE8 JSON implementation and the current ES5 draft. See
http://blogs.msdn.com/jscript/archive/2009/06/23/native-json-support-in-ie8-and-tracking-the-ecmascript-fifth-edition-draft-specification.aspx
for details.
Allen
>-----Original Message-----
>From: Hallvord R. M. Steen [mailto:[email protected]]
>Sent: Saturday, July 04, 2009 4:49 AM
>To: Oliver Hunt
>Cc: Allen Wirfs-Brock; Rob Sayre; Mark S.Miller; [email protected];
>Douglas Crockford; Robert Sayre
>Subject: Re: JSON parser grammar
>
>>>> a) Allow strings, numbers, Booleans, and null in addition to objects
>>>> and
>>>> arrays as top level JSON text.
>>>> The ES5 spec. already has this although it isn't in the RFC. I
>haven't
>>>> heard any suggestions that we remove it.
>
>>> How can you allow "strings" as top level JSON text?
>>
>> A piece of text is either a string literal or it is not -- i suspect
>> you're confusing JSON.parse("foo") where you are passing a string
>> containing the characters f,o and o with JSON.parse("\"foo\"") in
>which
>> the string contains the characters ",f,o,o and " -- eg. a string
>> literal.
>
>Indeed I was, particularly since IE8's implementation doesn't seem to
>understand this string-inside-string feature yet so when I tried this
>earlier I remained confused :-p. Thanks for clarifying.
>
>Another question: The JSON grammar says
>
>JSONNumber ::
>-opt DecimalIntegerLiteral JSONFraction opt ExponentPart opt
>
>
>JSONFraction ::
>. DecimalDigits
>
>This apparently makes numbers like "1." illegal? Should this really
>throw:
>
>JSON.parse('[1.]') ?
>
>And what about
>JSON.parse('[1.e10]') ?
>
>Both are of course allowed in normal JavaScript source text.
>
>--
>Hallvord R. M. Steen, Core Tester, Opera Software
>http://www.opera.com http://my.opera.com/hallvors/
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss