JSON5 starts out with some features I can absolutely get behind
- Arrays may have a single trailing comma.
- Strings may be single quoted.
- Single and multi-line comments are allowed.
Then starts falling apart implementing things that aren’t even legal in JavaScript. Calling itself JSON-anything and not being literally compatible with JavaScript notation is just… an unforgivable cardinal sin.
Yeah, I'd rather just use RON and at least have good mapping to the Serde data model. It's just as usable for humans, and everything it implements is legal in Rust so calling itself Rusty Object Notation is accurate. Sadly there aren't bindings for other languages, so using it from C++ or such isn't that simple.
What I miss from JSON5 is a dedicated date/time type (TOML eg. does have it!). I understand that this would be a step beyond mere syntax sugaring, but I'd still prefer this trade off.
I don't see why to stick to being a JavaScript subset. Yes, in the olden days it was practical with JSON that there is no need to write a dedicated parser, just pass the data to eval(). Nowadays you should not pass anything to eval, apart from metaprogramming purposes (in which case the input is fully in control of the code).
- Arrays may have a single trailing comma.
- Strings may be single quoted.
- Single and multi-line comments are allowed.
Then starts falling apart implementing things that aren’t even legal in JavaScript. Calling itself JSON-anything and not being literally compatible with JavaScript notation is just… an unforgivable cardinal sin.