[Haskell-cafe] Ordered JSON objects?

Tobias Dammers tdammers at gmail.com
Tue Dec 16 08:39:11 UTC 2014


On Mon, Dec 15, 2014 at 11:01:12PM +0100, Wojtek Narczyński wrote:
> On 15.12.2014 20:32, Tobias Dammers wrote:
> 
> >Anyway, one thing I'm running up against is that I am going to need
> >ordered key/value collections, which I believe is something JSON does
> >not support out-of-the-box: "objects" ({"foo":15, "bar":23}) are
> >conceptually unordered key/value collections (and Aeson treats them as
> >such, using hash maps as the intermediate storage format), so I lose
> >ordering;
> 
> JSON does not forbid ordering of maps by key, I believe. But you'd need to
> create an OrderedMap and patch aeson. It would be very useful, the mixing of
> key order is nuisance for human JSON consumers.

No, that's not what I meant. By "ordered", I meant that the in-memory
representation of the document should maintain file order. Aeson uses a
HashMap to store key/value objects, which is an unordered container;
what you suggest would be something like Map (storing elements by key
order), but what I'm talking about is more like [(Key, Value)], i.e.,
keeping file order intact.


More information about the Haskell-Cafe mailing list