Portability | portable |
---|---|
Stability | development |
Maintainer | mariusz@scrive.com |
Safe Haskell | None |
Interface for extracting data from JSValue.
- class FromJSValue a where
- fromJSValue :: JSValue -> Maybe a
- fromJSValueM :: (JSValueContainer c, MonadReader c m) => m (Maybe a)
- fromJSValueField :: (JSValueContainer c, MonadReader c m, FromJSValue a) => String -> m (Maybe a)
- fromJSValueFieldBase64 :: (JSValueContainer c, MonadReader c m) => String -> m (Maybe ByteString)
- fromJSValueFieldCustom :: (JSValueContainer c, MonadReader c m) => String -> m (Maybe a) -> m (Maybe a)
- fromJSValueCustomMany :: (JSValueContainer c, MonadReader c m) => m (Maybe a) -> m (Maybe [a])
- fromJSValueCustomList :: (JSValueContainer c, MonadReader c m) => [m (Maybe a)] -> m (Maybe [a])
- withJSValue :: Monad m => JSValue -> ReaderT JSValue m a -> m a
Basic Parsing
class FromJSValue a whereSource
Structures that can be parsed
from JSON. Instances must declare either fromJSValue
(parse directly from JSValue
) or fromJSValueM
(uses MonadReader
)
fromJSValue :: JSValue -> Maybe aSource
fromJSValueM :: (JSValueContainer c, MonadReader c m) => m (Maybe a)Source
FromJSValue Bool | |
FromJSValue Int | |
FromJSValue Integer | |
FromJSValue String | |
FromJSValue ByteString | |
FromJSValue JSValue | |
FromJSValue a => FromJSValue [a] | |
FromJSValue a => FromJSValue (Maybe a) | |
(FromJSValue a, FromJSValue b) => FromJSValue (a, b) |
Data Extraction
fromJSValueField :: (JSValueContainer c, MonadReader c m, FromJSValue a) => String -> m (Maybe a)Source
Reading the value that is on some field. With field if current JSON is not object
fromJSValueFieldBase64 :: (JSValueContainer c, MonadReader c m) => String -> m (Maybe ByteString)Source
Version of fromJSValueField
for Base64 encoded data to avoid memory leak.
fromJSValueFieldCustom :: (JSValueContainer c, MonadReader c m) => String -> m (Maybe a) -> m (Maybe a)Source
Generalization of fromJSValueField
. Does not use FromJSValue
instances
fromJSValueCustomMany :: (JSValueContainer c, MonadReader c m) => m (Maybe a) -> m (Maybe [a])Source
Runs parser on each element of underlaying json. Returns Just iff JSON is array.
fromJSValueCustomList :: (JSValueContainer c, MonadReader c m) => [m (Maybe a)] -> m (Maybe [a])Source
Generalization of fromJSValueCustomMany
, where each element of array can have different parser.