Safe Haskell | None |
---|---|
Language | Haskell2010 |
- abeJsonFormat :: ToJSON a => Parse e a -> JsonFormat e a
- aesonJsonFormat :: (ToJSON a, FromJSON a) => JsonFormat e a
- jsonArrayFormat :: (t -> [a]) -> ([a] -> Parse e t) -> JsonFormat e a -> JsonFormat e t
- jsonObjectFormat :: (t -> [(Text, a)]) -> ([(Text, a)] -> Parse e t) -> JsonFormat e a -> JsonFormat e t
- data SumStyle
- jsonSumFormat :: SumStyle -> (a -> (Text, Value)) -> NonEmpty (Text, FromJson e a) -> JsonFormat e a
Documentation
abeJsonFormat :: ToJSON a => Parse e a -> JsonFormat e a Source #
Produce an explicit JsonFormat
by using the implicit Aeson ToJSON
instance and an explicit aeson-better-errors
Parse
.
aesonJsonFormat :: (ToJSON a, FromJSON a) => JsonFormat e a Source #
Produce an explicit JsonFormat
by using the implicit Aeson FromJSON
and ToJSON
instances.
If an aeson-better-errors
parser is available for a
, it's probably better to use abeJsonFormat
to get the enhanced error reporting.
jsonArrayFormat :: (t -> [a]) -> ([a] -> Parse e t) -> JsonFormat e a -> JsonFormat e t Source #
JsonFormat
for any type which can be converted to/from a list which maps to a JSON array.
jsonObjectFormat :: (t -> [(Text, a)]) -> ([(Text, a)] -> Parse e t) -> JsonFormat e a -> JsonFormat e t Source #
JsonFormat
for any type which can be converted to/from a list of pairs which maps to a JSON object.
SumStyleFieldName | Map to a single-field object with the field name determined by the sum branch and the field value being the encoded value for that branch. |
SumStyleTypeValue Text Text | Map to a two-field object with fixed field names, the first being the type field and the second beind the value field. |
SumStyleMergeType Text | Given that each sum branch maps to a JSON object, add/parse an additional field to that object with the given name. |
jsonSumFormat :: SumStyle -> (a -> (Text, Value)) -> NonEmpty (Text, FromJson e a) -> JsonFormat e a Source #
JsonFormat
which maps sum types to JSON according to SumStyle
, given a pair of functions to decompose and recompose the sum type.