-- Hoogle documentation, generated by Haddock -- See Hoogle, http://www.haskell.org/hoogle/ -- | Serialize JSON data to/from Haskell using the data-object library. -- -- Serialize JSON data to/from Haskell using the data-object library. @package data-object-json @version 0.3.1 -- | A simple wrapper around the json-b library which presents values -- inside Objects. module Data.Object.Json -- | Matches the scalar data types used in json-b so we can have proper -- mapping between the two libraries. data JsonScalar JsonString :: ByteString -> JsonScalar JsonNumber :: Rational -> JsonScalar JsonBoolean :: Bool -> JsonScalar JsonNull :: JsonScalar -- | Meant to match closely with the JSON data type. Therefore, uses -- strict byte strings for keys and the JsonScalar type for -- scalars. type JsonObject = Object ByteString JsonScalar class (Eq a) => IsJsonScalar a fromJsonScalar :: (IsJsonScalar a) => JsonScalar -> a toJsonScalar :: (IsJsonScalar a) => a -> JsonScalar toJsonObject :: (ConvertSuccess k ByteString) => (IsJsonScalar v) => Object k v -> JsonObject fromJsonObject :: (ConvertSuccess ByteString k) => (IsJsonScalar v) => JsonObject -> Object k v -- | Encode a JsonObject into a lazy bytestring. encode :: (ConvertSuccess k ByteString, IsJsonScalar v) => Object k v -> ByteString encodeFile :: (ConvertSuccess k ByteString, IsJsonScalar v) => FilePath -> Object k v -> IO () -- | Decode a lazy bytestring into a JsonObject. decode :: (Failure JsonDecodeError m) => (ConvertSuccess ByteString k) => (IsJsonScalar v) => ByteString -> m (Object k v) decodeFile :: (Failure JsonDecodeError m) => (ConvertSuccess ByteString k) => (IsJsonScalar v) => FilePath -> IO (m (Object k v)) -- | Error type for JSON decoding errors. data JsonDecodeError instance Typeable JsonDecodeError instance Typeable JsonScalar instance Show JsonDecodeError instance Eq JsonScalar instance Show JsonScalar instance Read JsonScalar instance Data JsonScalar instance Exception JsonDecodeError instance IsJsonScalar ByteString instance IsJsonScalar ByteString instance IsJsonScalar [Char] instance IsJsonScalar Text instance IsJsonScalar Text instance IsJsonScalar JsonScalar