aeson-value-parser-0.14.3: An API for parsing "aeson" JSON tree into Haskell types

Safe HaskellNone
LanguageHaskell2010

Aeson.ValueParser

Contents

Description

A parser DSL for the "aeson" model of the JSON tree.

Synopsis

Documentation

data Value a Source #

A JSON Value parser.

Instances
Monad Value Source # 
Instance details

Defined in Aeson.ValueParser

Methods

(>>=) :: Value a -> (a -> Value b) -> Value b #

(>>) :: Value a -> Value b -> Value b #

return :: a -> Value a #

fail :: String -> Value a #

Functor Value Source # 
Instance details

Defined in Aeson.ValueParser

Methods

fmap :: (a -> b) -> Value a -> Value b #

(<$) :: a -> Value b -> Value a #

MonadFail Value Source # 
Instance details

Defined in Aeson.ValueParser

Methods

fail :: String -> Value a #

Applicative Value Source # 
Instance details

Defined in Aeson.ValueParser

Methods

pure :: a -> Value a #

(<*>) :: Value (a -> b) -> Value a -> Value b #

liftA2 :: (a -> b -> c) -> Value a -> Value b -> Value c #

(*>) :: Value a -> Value b -> Value b #

(<*) :: Value a -> Value b -> Value a #

Alternative Value Source # 
Instance details

Defined in Aeson.ValueParser

Methods

empty :: Value a #

(<|>) :: Value a -> Value a -> Value a #

some :: Value a -> Value [a] #

many :: Value a -> Value [a] #

MonadPlus Value Source # 
Instance details

Defined in Aeson.ValueParser

Methods

mzero :: Value a #

mplus :: Value a -> Value a -> Value a #

MonadError Error Value Source # 
Instance details

Defined in Aeson.ValueParser

Methods

throwError :: Error -> Value a #

catchError :: Value a -> (Error -> Value a) -> Value a #

data Error Source #

Constructors

Error 

Fields

Instances
IsString Error Source # 
Instance details

Defined in Aeson.ValueParser.Error

Methods

fromString :: String -> Error #

Semigroup Error Source # 
Instance details

Defined in Aeson.ValueParser.Error

Methods

(<>) :: Error -> Error -> Error #

sconcat :: NonEmpty Error -> Error #

stimes :: Integral b => b -> Error -> Error #

Monoid Error Source # 
Instance details

Defined in Aeson.ValueParser.Error

Methods

mempty :: Error #

mappend :: Error -> Error -> Error #

mconcat :: [Error] -> Error #

MonadError Error Array Source # 
Instance details

Defined in Aeson.ValueParser

Methods

throwError :: Error -> Array a #

catchError :: Array a -> (Error -> Array a) -> Array a #

MonadError Error Object Source # 
Instance details

Defined in Aeson.ValueParser

Methods

throwError :: Error -> Object a #

catchError :: Object a -> (Error -> Object a) -> Object a #

MonadError Error Value Source # 
Instance details

Defined in Aeson.ValueParser

Methods

throwError :: Error -> Value a #

catchError :: Value a -> (Error -> Value a) -> Value a #

Value parsers

Object parsers

data Object a Source #

A JSON Value parser.

Instances
Monad Object Source # 
Instance details

Defined in Aeson.ValueParser

Methods

(>>=) :: Object a -> (a -> Object b) -> Object b #

(>>) :: Object a -> Object b -> Object b #

return :: a -> Object a #

fail :: String -> Object a #

Functor Object Source # 
Instance details

Defined in Aeson.ValueParser

Methods

fmap :: (a -> b) -> Object a -> Object b #

(<$) :: a -> Object b -> Object a #

MonadFail Object Source # 
Instance details

Defined in Aeson.ValueParser

Methods

fail :: String -> Object a #

Applicative Object Source # 
Instance details

Defined in Aeson.ValueParser

Methods

pure :: a -> Object a #

(<*>) :: Object (a -> b) -> Object a -> Object b #

liftA2 :: (a -> b -> c) -> Object a -> Object b -> Object c #

(*>) :: Object a -> Object b -> Object b #

(<*) :: Object a -> Object b -> Object a #

Alternative Object Source # 
Instance details

Defined in Aeson.ValueParser

Methods

empty :: Object a #

(<|>) :: Object a -> Object a -> Object a #

some :: Object a -> Object [a] #

many :: Object a -> Object [a] #

MonadPlus Object Source # 
Instance details

Defined in Aeson.ValueParser

Methods

mzero :: Object a #

mplus :: Object a -> Object a -> Object a #

MonadError Error Object Source # 
Instance details

Defined in Aeson.ValueParser

Methods

throwError :: Error -> Object a #

catchError :: Object a -> (Error -> Object a) -> Object a #

field :: Text -> Value a -> Object a Source #

fieldOr Source #

Arguments

:: Text

Field name

-> Value a

Field parser

-> Object a

Alternative branch

-> Object a 

Applies the value parser to the existing field, propagating its errors accordingly. Only if the field does not exist, it executes Alternative branch. IOW, it won't execute Alternative branch if Field parser fails. This is what distinguishes fieldOr name parser from the seemingly same mplus (field name parser)

oneOfFieldsOr :: [Text] -> Value a -> Object a -> Object a Source #

Same as fieldOr, with the only difference that it enumerates the provided list of field names parsing the first existing one.

possibleField :: Text -> Value a -> Object (Maybe a) Source #

Applies the value parser to the existing field, propagating its errors accordingly, but unlike field it doesn't fail if the field does not exist. The Maybe wrapper is there to cover such a case.

oneOfPossibleFields :: [Text] -> Value a -> Object (Maybe a) Source #

Same as possibleField, with the only difference that it enumerates the provided list of field names parsing the first existing one.

foldlFields :: (state -> Text -> field -> state) -> state -> Value field -> Object state Source #

Array parsers

data Array a Source #

A JSON Value parser.

Instances
Monad Array Source # 
Instance details

Defined in Aeson.ValueParser

Methods

(>>=) :: Array a -> (a -> Array b) -> Array b #

(>>) :: Array a -> Array b -> Array b #

return :: a -> Array a #

fail :: String -> Array a #

Functor Array Source # 
Instance details

Defined in Aeson.ValueParser

Methods

fmap :: (a -> b) -> Array a -> Array b #

(<$) :: a -> Array b -> Array a #

MonadFail Array Source # 
Instance details

Defined in Aeson.ValueParser

Methods

fail :: String -> Array a #

Applicative Array Source # 
Instance details

Defined in Aeson.ValueParser

Methods

pure :: a -> Array a #

(<*>) :: Array (a -> b) -> Array a -> Array b #

liftA2 :: (a -> b -> c) -> Array a -> Array b -> Array c #

(*>) :: Array a -> Array b -> Array b #

(<*) :: Array a -> Array b -> Array a #

Alternative Array Source # 
Instance details

Defined in Aeson.ValueParser

Methods

empty :: Array a #

(<|>) :: Array a -> Array a -> Array a #

some :: Array a -> Array [a] #

many :: Array a -> Array [a] #

MonadPlus Array Source # 
Instance details

Defined in Aeson.ValueParser

Methods

mzero :: Array a #

mplus :: Array a -> Array a -> Array a #

MonadError Error Array Source # 
Instance details

Defined in Aeson.ValueParser

Methods

throwError :: Error -> Array a #

catchError :: Array a -> (Error -> Array a) -> Array a #

element :: Int -> Value a -> Array a Source #

elementOr :: Int -> Value a -> Array a -> Array a Source #

foldlElements :: (state -> Int -> element -> state) -> state -> Value element -> Array state Source #

foldrElements :: (Int -> element -> state -> state) -> state -> Value element -> Array state Source #