aeson-extra-0.2.1.0: Extra goodies for aeson

Copyright(C) 2015 Oleg Grenrus
LicenseBSD3
MaintainerOleg Grenrus <oleg.grenrus@iki.fi>
Safe HaskellNone
LanguageHaskell2010

Data.Aeson.Compat

Contents

Description

Compatibility notices

  • decode etc. work as in aeson >=0.9
  • but it is generalised to work in any MonadThrow (that is extra)
  • .:? works as in aeson <0.10
  • .:! works as .:? in aeson ==0.10

Synopsis

Generic decoding functions

decode :: (FromJSON a, MonadThrow m) => ByteString -> m a Source

Like original decode but in arbitrary MonadThrow.

Parse a top-level JSON value, i.e. also strings, numbers etc.

decode' :: (FromJSON a, MonadThrow m) => ByteString -> m a Source

Like original decode' but in arbitrary MonadThrow.

decodeStrict :: (FromJSON a, MonadThrow m) => ByteString -> m a Source

Like original decodeStrict but in arbitrary MonadThrow.

decodeStrict' :: (FromJSON a, MonadThrow m) => ByteString -> m a Source

Like original decodeStrict' but in arbitrary MonadThrow.

Either decoding functions

eitherDecode :: FromJSON a => ByteString -> Either String a

Like decode but returns an error message when decoding fails.

eitherDecode' :: FromJSON a => ByteString -> Either String a

Like decode' but returns an error message when decoding fails.

eitherDecodeStrict :: FromJSON a => ByteString -> Either String a

Like decodeStrict but returns an error message when decoding fails.

eitherDecodeStrict' :: FromJSON a => ByteString -> Either String a

Like decodeStrict' but returns an error message when decoding fails.

Operators

(.:?) :: FromJSON a => Object -> Text -> Parser (Maybe a) Source

Retrieve the value associated with the given key of an Object. The result is Nothing if the key is not present, or empty if the value cannot be converted to the desired type.

This accessor is most useful if the key and value can be absent from an object without affecting its validity. If the key and value are mandatory, use .: instead.

This operator is consistent in 'aeson >=0.8 && <0.11'

(.:!) :: FromJSON a => Object -> Text -> Parser (Maybe a) Source

Like .:?, but the resulting parser will fail, if the key is present but is Null.

Re-exports

Original .:? operator is not re-exported

module Data.Aeson