|Maintainer||Leon P Smith <email@example.com>|
Data structure agnostic JSON serialization
Key typeclass represents types that are rendered
into json strings. They are special because only strings
can appear as field names of a json objects.
Value typeclass represents types that can be rendered
into valid json syntax.
|Value a => Value [a]|
|(Key k, Value a) => Value (Map k a)|
Object type represents a builder that constructs syntax for a
json object. It has a singleton constructor
row, and an instance of
monoid, so that arbitrary objects can be constructed. Note that
duplicate field names will appear in the output, so it is up to the
user of this interface to avoid duplicate field names.
Escaped type is a special Builder value that represents a UTF-8
encoded string with all necessary characters json-escaped. These builders
must not render the opening or closing quotes, which are instead rendered
toBuilder. This is so that Json strings can be efficiently constructed
from multiple Haskell strings without actually concatinating the Haskell
strings (which might require some kind of conversion in addition to