data JSON { } #
Null
Bool !Bool
Number !Double
String !String
Array ![JSON]
Object !(Map.Map String JSON)
data JSONError { } #
ParseError String
KeyNotFound String
TypeMismatch String String
JSON parsing errors.
type Parser a = String -> Maybe (a, String) { } #
class ToJSON a { } #

Methods

toJSON :: a -> JSON
class FromJSON a { } #

Methods

fromJSON :: JSON -> Either JSONError a
decode :: (FromJSON a) => String -> Maybe a { } #
Decode JSON from a string.
decodeStrict :: (FromJSON a) => String -> a { } #
Strict decode (errors on failure).
eitherDecode :: (FromJSON a) => String -> Either JSONError a { } #
Decode with error information.
encode :: (ToJSON a) => a -> String { } #
Encode to JSON string.
encodePretty :: (ToJSON a) => a -> String { } #
Encode with pretty printing.
parseJSON :: String -> Either String JSON { } #
Parse raw JSON.
encodeJSON :: JSON -> String { } #
Encode JSON value to string.
encodePrettyJSON :: JSON -> String { } #
Encode with indentation.
escapeString :: String -> String { } #
.: :: (FromJSON a) => (Map.Map String JSON) -> String -> Either JSONError a { } #
.:? :: (FromJSON a) => (Map.Map String JSON) -> String -> Either JSONError (Maybe a) { } #
.!= :: (Either JSONError (Maybe a)) -> a -> Either JSONError a { } #
object :: [(String, JSON)] -> JSON { } #
.= :: (ToJSON a) => String -> a -> (String, JSON) { } #
array :: [JSON] -> JSON { } #
typeOf :: JSON -> String { } #
runParser :: (Parser a) -> String -> Maybe (a, String) { } #
jsonValue :: Parser JSON { } #
parseString :: Parser JSON { } #
parseNumber :: Parser JSON { } #
parseArray :: Parser JSON { } #
parseObject :: Parser JSON { } #
isSpace :: Char -> Bool { } #
intercalate :: [a] -> [[a]] -> [a] { } #
first :: (a -> b) -> (a, c) -> (b, c) { } #
instance ToJSON JSON { }
instance FromJSON JSON { }
instance ToJSON Bool { }
instance FromJSON Bool { }
instance ToJSON Int { }
instance FromJSON Int { }
instance ToJSON Integer { }
instance FromJSON Integer { }
instance ToJSON Double { }
instance FromJSON Double { }
instance ToJSON String { }
instance FromJSON String { }
instance ToJSON a => ToJSON [a] { }
instance FromJSON a => FromJSON [a] { }
instance ToJSON a => ToJSON (Maybe a) { }
instance FromJSON a => FromJSON (Maybe a) { }