Copyright | (c) Edsko de Vries Duncan Coutts 2015 |
---|---|
Safe Haskell | None |
Language | Haskell2010 |
Text.JSON.Canonical.Class
Contents
Description
Type classes and utilities for converting to and from
JSValue
.
Synopsis
- class ToJSON m a where
- class FromJSON m a where
-
class
ToObjectKey
m a
where
- toObjectKey :: a -> m JSString
-
class
FromObjectKey
m a
where
- fromObjectKey :: JSString -> m ( Maybe a)
- class ( Applicative m, Monad m) => ReportSchemaErrors m where
- type Expected = String
- type Got = String
- expectedButGotValue :: ReportSchemaErrors m => Expected -> JSValue -> m a
- fromJSObject :: ReportSchemaErrors m => JSValue -> m [( JSString , JSValue )]
- fromJSField :: ( ReportSchemaErrors m, FromJSON m a) => JSValue -> JSString -> m a
- fromJSOptField :: ( ReportSchemaErrors m, FromJSON m a) => JSValue -> JSString -> m ( Maybe a)
- mkObject :: forall m. Monad m => [( JSString , m JSValue )] -> m JSValue
Type classes
class ToJSON m a where Source #
Instances
Monad m => ToJSON m Int54 Source # | |
Monad m => ToJSON m String Source # | |
Monad m => ToJSON m JSString Source # | |
Monad m => ToJSON m JSValue Source # | |
( Monad m, ToJSON m a) => ToJSON m [a] Source # | |
Defined in Text.JSON.Canonical.Class |
|
( Monad m, ToObjectKey m k, ToJSON m a) => ToJSON m ( Map k a) Source # | |
class FromJSON m a where Source #
Instances
ReportSchemaErrors m => FromJSON m Int54 Source # | |
ReportSchemaErrors m => FromJSON m String Source # | |
ReportSchemaErrors m => FromJSON m JSString Source # | |
Monad m => FromJSON m JSValue Source # | |
( ReportSchemaErrors m, FromJSON m a) => FromJSON m [a] Source # | |
Defined in Text.JSON.Canonical.Class |
|
( ReportSchemaErrors m, Ord k, FromObjectKey m k, FromJSON m a) => FromJSON m ( Map k a) Source # | |
class ToObjectKey m a where Source #
Methods
toObjectKey :: a -> m JSString Source #
Instances
Monad m => ToObjectKey m String Source # | |
Defined in Text.JSON.Canonical.Class Methods toObjectKey :: String -> m JSString Source # |
|
Monad m => ToObjectKey m JSString Source # | |
Defined in Text.JSON.Canonical.Class Methods toObjectKey :: JSString -> m JSString Source # |
class FromObjectKey m a where Source #
Methods
fromObjectKey :: JSString -> m ( Maybe a) Source #
Instances
Monad m => FromObjectKey m String Source # | |
Defined in Text.JSON.Canonical.Class |
|
Monad m => FromObjectKey m JSString Source # | |
Defined in Text.JSON.Canonical.Class |
class ( Applicative m, Monad m) => ReportSchemaErrors m where Source #
Monads in which we can report schema errors
expectedButGotValue :: ReportSchemaErrors m => Expected -> JSValue -> m a Source #
Utility
fromJSObject :: ReportSchemaErrors m => JSValue -> m [( JSString , JSValue )] Source #
fromJSField :: ( ReportSchemaErrors m, FromJSON m a) => JSValue -> JSString -> m a Source #
Extract a field from a JSON object
fromJSOptField :: ( ReportSchemaErrors m, FromJSON m a) => JSValue -> JSString -> m ( Maybe a) Source #