Hacker News new | ask | show | jobs
by chriswarbo 3705 days ago
Yes, the order of elements in an array should always be preserved. For example, we might be expecting the first element to be a name, the second to be a date of birth, etc. We should use an object for that, but that's for reasons of readability, extensibility, etc. rather than array semantics being unsuitable.

Also, jq has a `--sort-keys` option which tries to make the output as reproducible/canonical as possible. From the manual:

> The keys are sorted "alphabetically", by unicode codepoint order. This is not an order that makes particular sense in any particular language, but you can count on it being the same for any two objects with the same set of keys, regardless of locale settings.

It would be strange for a JSON tool to go to such lengths to normalise data, if array order were unpredictable.