JSON5 support for std.json
Chris Wright via Digitalmars-d
digitalmars-d at puremagic.com
Mon Nov 30 14:12:18 PST 2015
On Mon, 30 Nov 2015 20:42:20 +0000, Jack Stouffer wrote:
> JSON5 is also just a terrible idea. There is a very good reason why JSON
> does not have comments
> https://plus.google.com/+DouglasCrockfordEsq/posts/RK8qyGVaGSr and why
> it's strict. Data formats should have data, not anything else.
I fully understand and sympathize with desires for simple formats for
data generated by a program to be read by a program. JSON is just fine
for REST interfaces. It's great as a storage format for document
databases. I'm not advocating for JSON5 there.
But JSON is also used for human-edited configuration files.
Configuration files should allow for comments. I poke about /etc and see
that nearly every file there has copious comments detailing which fields
exist, what sorts of values are allowed, the effects that field has, what
the default values are, and whether you need to coordinate values between
them. I've probably used those comments several hundred times, and I'd
spend many hours paging through Google and asking questions on
stackoverflow if they didn't exist.
JSON forbids comments, which is less than ideal. But Ruby's JSON parser
allows comments, as does Newtonsoft JSON.NET.
If a human is going to edit a document, it should ideally be easy to edit
it. It would be friendly, for instance, to allow trailing commas, because
that's one less thing that a human has to worry about. Java's org.json
library, which is linked from and has its documentation hosted at
json.org, allows trailing commas. Newtonsoft JSON.NET does likewise.
It would be friendlier to the fingers to be able to omit quotes on simple
object keys since it's less typing and no less clarity. Many strings
contain double quotes, so it would be nice to allow single-quoted
strings. org.json allows single-quoted strings. JSON.NET allows unquoted
object keys and single-quoted strings.
More information about the Digitalmars-d