std.json parsing real numbers.
Borislav Kosharov
boby_dsm at abv.bg
Sat Aug 10 12:18:42 PDT 2013
On Saturday, 10 August 2013 at 18:28:31 UTC, H. S. Teoh wrote:
> On Thu, Aug 08, 2013 at 08:46:15PM +0200, Borislav Kosharov
> wrote:
>> On Thursday, 8 August 2013 at 16:05:56 UTC, Nick Sabalausky
>> wrote:
>> >On Thu, 08 Aug 2013 17:20:16 +0200
>> >"Borislav Kosharov" <bosak at gmail.com> wrote:
>> >
>> >>On Thursday, 8 August 2013 at 10:13:51 UTC, khurshid wrote:
>> >>> On Thursday, 8 August 2013 at 10:11:07 UTC, MrSmith wrote:
>> >>>> On Thursday, 8 August 2013 at 08:04:49 UTC, khurshid
>> >>>> wrote:
>> >>>>>
>> >>>>> I just check std.json for parsing real numbers.
>> >>>>>
>> >>>>> import std.json;
>> >>>>> import std.stdio: writeln;
>> >>>>>
>> >>>>> int main()
>> >>>>> {
>> >>>>> auto json = parseJSON("1 .24E +1");
>> >>>>> writeln(toJSON(&json));
>> >>>>> return 0;
>> >>>>> }
>> >>>>>
>> >>>>> and
>> >>>>> output: 12.4
>> >>>>>
>> >>>>>
>> >>>>> It's bug or normal ?
>> >>>>
>> >>>> Yep, because 1.24E+1 is 12.4E0
>> >>>
>> >>> I wrote not a "1.24E+1", a "1 .24E +1" with
>> >>> leading >
>> >>spaces.
>> >>
>> >>Well what should it be if it's not 12.4?
>> >
>> >A syntax error.
>>
>> I don't think this would cause any problems. It would just
>> throw
>> syntax error because there is white-space between? It would be
>> just
>> annoying to get syntax error because of extra white-space.
>>
>> Maybe this is one of the situations where we should think
>> "It's not
>> a bug, it's a feature!"
>>
>> Unless there is a situation that would make no sense to work or
>> something, it should be left like it is now.
>
> This makes std.json non-conformant to the JSON spec. What if
> the extra
> white-space is an indication of data corruption? We should not
> blindly
> accept it just because we can.
>
>
> T
Sorry, I tough that white-space was allowed in JSON, but I didn't
red the specification before posting. If that is what the spec
says then I agree too to stay strict with it.
More information about the Digitalmars-d
mailing list