RFC: std.json sucessor

via Digitalmars-d digitalmars-d at puremagic.com
Mon Aug 25 13:39:53 PDT 2014


On Monday, 25 August 2014 at 20:21:01 UTC, Sönke Ludwig wrote:
> Well, of course it's based on that RFC, did you seriously think 
> something else?

I made no assumptions, just responded to what you wrote :-). It 
would be reasonable in the context of vibe.d to assume the 
ECMAScript spec.

> But I generally agree, it's just that the anti-exception voices 
> are pretty loud these days (including Walter's), so that I 
> opted for a non-throwing solution instead.

Yes, the minimum requirement is to just get "did not validate" 
directly as a single value. One can create a wrapper to get 
exceptions.

> I guess it wouldn't hurt though to default to throwing an 
> exception, while still providing the 
> GeneratorOptions.specialFloatLiterals option to handle those 
> values without exception overhead, but in a non 
> standard-conforming way.

What I care most about is getting all the free validation that 
can be added with no extra cost.

That will make writing web services easier. Like if you can 
define constraints like:

- root is array, values are strings.
- root is array, second level only arrays, third level is numbers
- root is dict, all arrays contain only numbers

What is a bit annoying about generic libs is that you have no 
idea what you are getting so you have to spend time creating dull 
validation code.

But maybe StructuredJSON should be a separate library. It would 
be useful for REST services to specify the grammar and 
auto-generate both javascript and D structures to hold it along 
with validation code.

However, just turning off parsing of "true", "false", "null", 
"[", "{" etc seems like a cheap addition that also can improve 
parsing speed if the compiler can make do with two if statements 
instead of a switch.

Ola.


More information about the Digitalmars-d mailing list