jordan-0.1.0.0: JSON with Structure
Safe HaskellNone
LanguageHaskell2010

Jordan.FromJSON.Megaparsec

Synopsis

Documentation

newtype ObjectParser a Source #

Instances

Instances details
Functor ObjectParser Source # 
Instance details

Defined in Jordan.FromJSON.Megaparsec

Methods

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

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

Applicative ObjectParser Source # 
Instance details

Defined in Jordan.FromJSON.Megaparsec

JSONObjectParser ObjectParser Source # 
Instance details

Defined in Jordan.FromJSON.Megaparsec

Methods

parseFieldWith :: Text -> (forall (valueParser :: Type -> Type). JSONParser valueParser => valueParser a) -> ObjectParser a Source #

parseField :: FromJSON v => Text -> ObjectParser v Source #

newtype ArrayParser a Source #

Constructors

ArrayParser 

Fields

Instances

Instances details
Functor ArrayParser Source # 
Instance details

Defined in Jordan.FromJSON.Megaparsec

Methods

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

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

Applicative ArrayParser Source # 
Instance details

Defined in Jordan.FromJSON.Megaparsec

Methods

pure :: a -> ArrayParser a #

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

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

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

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

JSONTupleParser ArrayParser Source # 
Instance details

Defined in Jordan.FromJSON.Megaparsec

Methods

consumeItemWith :: (forall (valueParser :: Type -> Type). JSONParser valueParser => valueParser a) -> ArrayParser a Source #

consumeItem :: FromJSON v => ArrayParser v Source #

newtype MegaparsecParser a Source #

Constructors

MegaparsecParser 

Instances

Instances details
Functor MegaparsecParser Source # 
Instance details

Defined in Jordan.FromJSON.Megaparsec

Methods

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

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

JSONParser MegaparsecParser Source # 
Instance details

Defined in Jordan.FromJSON.Megaparsec

Methods

parseObject :: Text -> (forall (objectParser :: Type -> Type). JSONObjectParser objectParser => objectParser a) -> MegaparsecParser a Source #

parseObjectStrict :: Text -> (forall (objectParser :: Type -> Type). JSONObjectParser objectParser => objectParser a) -> MegaparsecParser a Source #

parseDictionary :: (forall (jsonParser :: Type -> Type). JSONParser jsonParser => jsonParser a) -> MegaparsecParser [(Text, a)] Source #

parseText :: MegaparsecParser Text Source #

parseTextConstant :: Text -> MegaparsecParser () Source #

parseTuple :: (forall (arrayParser :: Type -> Type). JSONTupleParser arrayParser => arrayParser o) -> MegaparsecParser o Source #

parseArray :: FromJSON a => MegaparsecParser [a] Source #

parseArrayWith :: (forall (jsonParser :: Type -> Type). JSONParser jsonParser => jsonParser a) -> MegaparsecParser [a] Source #

parseNumber :: MegaparsecParser Scientific Source #

parseNull :: MegaparsecParser () Source #

parseBool :: MegaparsecParser Bool Source #

validateJSON :: MegaparsecParser (Either Text a) -> MegaparsecParser a Source #

Semigroup (MegaparsecParser a) Source # 
Instance details

Defined in Jordan.FromJSON.Megaparsec

Monoid (MegaparsecParser a) Source # 
Instance details

Defined in Jordan.FromJSON.Megaparsec

convertParserToMegaparsecParser :: (forall parser. JSONParser parser => parser a) -> Parser a Source #

Convert an abstract JSONParser to a Megaparsec parser.

megaparsecParser :: FromJSON val => Parser val Source #

Get a megaparsec parser for your JSON value. This parser will not construct any intermediate maps or other structures - your object will be parsed directly!

Note: this parser, until the ones that are built into the class, can consume whitespace at the start of the JSON.

runParserViaMegaparsec :: (forall parser. JSONParser parser => parser a) -> Text -> Either String a Source #

Run an abstract JSONParser via Megaparsec.

parseViaMegaparsec :: forall val. FromJSON val => Text -> Either String val Source #

Parse an object for which FromJSON is defined via Megaparsec.