Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
I wish JSON5 was more popular (evertpot.com)
11 points by surprisetalk on June 17, 2023 | hide | past | favorite | 8 comments


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.


> And while we’re at it, stop polluting my projects root directory! Can’t we all agree on a .meta directory for finding configuration files?

Yes, but to nitpick how about `.config` instead? If only because it's reminiscent of the default XDG_CONFIG_HOME relative location


I've come around to just using TOML wherever possible.

It is not perfect, not by any means. But it really does hit a sweet spot of things and mostly stops you from shooting yourself in the foot.


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.


[flagged]


The point of JSON is that it is a subset of JavaScript and you could pass it to `eval`.


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).


Yes, it is mighty convenient even if JSON is generated by something else to just add a let X = in front and call it js.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: