std.json dynamic initialization of JSONValue

Piotr Szturmaj bncrbme at jadamspam.pl
Sat Mar 31 09:25:53 PDT 2012


Andrej Mitrovic wrote:
> On 12/1/11, Kai Meyer<kai at unixlords.com>  wrote:
>> I'm finding std.json extremely well written, with one glaring exception.
>
> I'm finding it to be crap. The last time I used it I just kept getting
> access violations (or was that std.xml? They're both crap when I used
> them.). ae.json beats its pants off for its simplicity + you get
> toJson/jsonParse for serialization and a way to skip serializing
> fields since a recent commit . It's easy to write your own
> tree-walking routines as well.
>
> But whatever works for people. :)

I have written streaming json parser using ranges. It returns slices 
when possible. Benchmarked it and it's about 2.05x the speed of std.json.

It gives possibility to "dig" into the structure and stream (using 
ranges) by member fields, array elements, or characters of field names 
and string values. It's possible to parse JSON without a single 
allocation. For convenience, one can get objects, arrays and strings as 
a whole.

I plan to add a streaming json writer and release it (currently it 
outputs json using toString()). I've seen questions on stackoverflow 
about parsing 500 MB JSON... so streaming feature makes it really 
universal. This approach should be good for XML parser too.

Currently, I don't have time to improve it. But if someone is interested 
I can send it as is :-)


More information about the Digitalmars-d-learn mailing list