JSON5 support for std.json
Jonathan M Davis via Digitalmars-d
digitalmars-d at puremagic.com
Sun Nov 29 17:02:37 PST 2015
On Monday, 30 November 2015 at 00:30:07 UTC, Chris Wright wrote:
> I'm considering adding JSON5 support to std.json and want to
> know how well this would be received.
>
> JSON5 is pretty much just modern JavaScript's object literal
> format, allowing things like comments, trailing commas, and
> single-quoted strings.
>
> I only plan to add support for parsing JSON5, not emitting it.
> So there should be no compatibility concerns with what std.json
> emits.
>
> Since it's technically a breaking change (people can use
> std.json currently to validate that a document is valid JSON),
> I am inclined to make JSON5 be off by default and add an option
> to parse JSON5 rather than JSON1. Anyone have strong feelings
> about this?
Having a JSON 5 parser makes some sense, but I don't think that
it makes any sense to have one which can parse JSON 5 but not
emit it. Either you're dealing with JSON 5 or you're not, and the
historical approach of the internet to be lax in what you accept
and strict what you emit has proven to be a horrible approach
IMHO.
So, creating a new module specifically for a new version of JSON
seems fine, or maybe it would make sense for one module to
support multiple versions by specifying which you want to use
(assuming the the APIs are pretty much the same across versions,
which they probably aren't), but let's please not have something
that mucks around with multiple versions of JSON at once.
Also, note that std.json will probably be replaced at some point
here. There's at least one replacement in the works that's had
some review in the newsgroup:
http://code.dlang.org/packages/std_data_json
So, updating the current std.json to support other versions of
JSON probably doesn't make a lot of sense regardless of how we
want to handle multiple versions.
- Jonathan M Davis
More information about the Digitalmars-d
mailing list