aeson-2.2.1.0: Fast JSON parsing and encoding
Safe HaskellSafe-Inferred
LanguageHaskell2010

Data.Aeson.Decoding

Description

Convertion to and from aeson Value.

Synopsis

Documentation

decode :: FromJSON a => ByteString -> Maybe a Source #

Efficiently deserialize a JSON value from a lazy ByteString. If this fails due to incomplete or invalid input, Nothing is returned.

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

Like decode but returns an error message when decoding fails.

throwDecode :: forall a m. (FromJSON a, MonadThrow m) => ByteString -> m a Source #

Like decode but throws an AesonException when decoding fails.

throwDecode is in aeson since 2.1.2.0, but this variant is added later.

decodeStrict :: FromJSON a => ByteString -> Maybe a Source #

Efficiently deserialize a JSON value from a strict ByteString. If this fails due to incomplete or invalid input, Nothing is returned.

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

Like decodeStrict but returns an error message when decoding fails.

throwDecodeStrict :: forall a m. (FromJSON a, MonadThrow m) => ByteString -> m a Source #

Like decodeStrict but throws an AesonException when decoding fails.

decodeStrictText :: FromJSON a => Text -> Maybe a Source #

Efficiently deserialize a JSON value from a strict ByteString. If this fails due to incomplete or invalid input, Nothing is returned.

Since: 2.2.1.0

eitherDecodeStrictText :: FromJSON a => Text -> Either String a Source #

Like decodeStrictText but returns an error message when decoding fails.

Since: 2.2.1.0

throwDecodeStrictText :: forall a m. (FromJSON a, MonadThrow m) => Text -> m a Source #

Like decodeStrictText but throws an AesonException when decoding fails.

Since: 2.2.1.0

toEitherValue Source #

Arguments

:: Tokens k e

tokens

-> Either e (Value, k)

either token error or value and leftover.

Convert Tokens to Value.

The resulting value will be in normal form if its forced. In other words, there shouldn't be thunks inside.

unescapeText :: ByteString -> Either UnicodeException Text Source #

Unescape JSON text literal.

This function is exporeted mostly for testing and benchmarking purposes.