Module documentation for 0.3.0.2

aeson-utils

A small package containing helpful addititions to aeson.

It provides eitherDecodeV and decodeV functions (analogous to eitherDecode and decode in aeson) that can be used to parse atomic JSON values at the top level. This is not strictly valid JSON, only objects and arrays are allowed at the top level in the specification, but aeson’s encode allows this already. This gives us the nice property decodeV . encode = Just.

The package also contains the .=? operator that you can use to optionally construct object pairs:

Installation instructions

Changes

Changelog

0.3.0.2

Allow aeson 0.9.*. Because of the aeson release eitherDecodeV and decodeV now behave the same as eitherDecode and decode respectively, this package can still be used as a compatibility layer.

0.3.0.1

Allow attoparsec 0.13.*

0.3

The semantics of eitherDecodeV and decodeV have been changed to conform to aeson’s eitherDecode and decode: They now consume until end of input and strip trailing whitespace.

This is necessary to remove ambiguity when decoding JSON-like values that are
not necessarily properly formatted for JSON. For example, parsing a hexadecimal
digit sequence that starts with digits but does not have double quotes should
fail to parse rather than be interpreted as a number.