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

Reply via email to