std.data.json formal review

Sönke Ludwig via Digitalmars-d digitalmars-d at puremagic.com
Tue Oct 6 03:32:51 PDT 2015


Am 06.10.2015 um 12:05 schrieb Alex:
> JSON is a particular file format useful for serialising heirachical data.
>
> Given that D also has an XML module which appears to be deprecated, I
> wonder if it would be better to write a more abstract
> serialisation/persistance module that could use either json,xml,some
> binary format and future formats.
>
> I would estimate that more than 70% of the times, the JSON data will
> only be read and written by a single D application, with only occasional
> inspection by developers etc.
> In these cases it is undesirable to have code littered with types coming
> from a particular serialisation file format library.
> As the software evolves that file format might become
> obsolete/slow/unfashionable etc, and it would be much nicer if the
> format could be changed without a lot of code being touched.
> The other 30% of uses will genuinely need raw JSON control when
> reading/writing files written/read by other software, and this needs to
> be in Phobos to implement the backends.
> It would be better for most people to not write their code in terms of
> JSON, but in terms of the more abstract concept of
> persistence/serialisation (whatever you want to call it).

A generic serialization framework is definitely needed! Jacob Carlborg 
had once tried to get the Orange[1] serialization library into Phobos, 
but the amount of requested changes was quite overwhelming and it didn't 
work out so far. There is also a serialization framework in vibe.d[2], 
but in contrast to Orange it doesn't handle cross references (for 
pointers/reference types).

But this is definitely outside of the scope of this particular module 
and will require a separate effort. It is intended to be well suited for 
that purpose, though.

[1]: https://github.com/jacob-carlborg/orange
[2]: http://vibed.org/api/vibe.data.serialization/


More information about the Digitalmars-d mailing list