On 2013-11-21 01:58:11 +0000, Manu Evans said:

So I've had a few practical problems with Json.

The one that's got me right now is that I can't see any way to mark
members as @optional, or @noserialise, which means transient data ends
up in files.

I've reached a show-stopper with it now though, where if I add a member
to my struct, and then try and read my existing serialised data back
into it, it complains that the new field is missing in the json and
throws, so it destroys all my data any time I update a struct.

New fields that I add (not in the existing json data) should be able to
take on default values.

Also it seems reasonable that omitting fields from the json is a
reasonable request that the field should be set to default, which might
help reduce data volume with unnecessary json fields set to default
values.

Should I be using another serialisation library?

There is work being done on a much better std.json. I'm not sure how
much use updating this in vibe-d is right now.

https://github.com/Orvid/JSONSerialization