this post was submitted on 15 Sep 2024
22 points (77.5% liked)

Programming

17669 readers
187 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 2 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 16 points 3 months ago* (last edited 3 months ago) (1 children)

A summary:

An old proposal (2015, not sure why OP posted it now), that basically proposes to put some more standards and limitations around JSON formatting to make it more predictable. Most of it seems pretty reasonable:

  • Must be UTF-8 encoded and properly escape Unicode characters
  • Numbers must respect the JavaScript number Type and it's limitations (i.e. max magnitude of an int etc.)
  • Objects can't have duplicate keys
  • The order of keys in objects does not matter
  • A JSON file does not need to have a top level object or array, it can be any JSON value (i.e. just a string or a number is still valid JSON).
  • It proposes that when processing JSON, any unrecognized keys should be ignored rather than errored

It recommends:

  • Specific formats for date-time data
  • That binary data be stored as a bas64url string

Honestly, the only part of this I dislike is the order of keys not mattering. I get that in a bunch of languages they use dictionary objects that don't preserve order, but backend languages have a lot more headroom to adapt and create objects that can, vs making a JavaScript thread loop over an object an extra time to reorder it every time it receives data.

[–] GTG3000 6 points 3 months ago (1 children)

Personally, I prefer duplicate keys to be eaten by the parser but I can see how it'd be beneficial to prevent them.

[–] [email protected] 3 points 3 months ago* (last edited 3 months ago)

I'm honestly unsure if they intend the 'must-ignore' policy to mean to eat duplicate keys without erroring, or just to eat keys that are unexpected based on some contract or schema....