Basic functions

toJsonString :: Json a => a -> String

Converts the value to a string encoded with JSON

fromJsonString :: Json a => String -> a

Parses a JSON encoded string into a value

Supported value types

This module supports the following value types:

instance Json String
instance Json Short
instance Json Integer
instance Json Long
instance Json Float
instance Json Double

instance (Json a) => Json [a]
instance (Json a) => Json (Maybe a)

instance Json ()
instance (Json a, Json b) => Json (a, b)
instance (Json a, Json b, Json c) => Json (a, b, c)
instance (Json a, Json b, Json c, Json d) => Json (a, b, c, d)
instance (Json a, Json b, Json c, Json d, Json e) => Json (a, b, c, d, e) 

instance Json Json

Generic JSON Type

data Json
JsonString :: String -> Json
JsonDouble :: Double -> Json
JsonLong :: Long -> Json
JsonArray :: [Json] -> Json
JsonBoolean :: Boolean -> Json
JsonNull :: Json
JsonObject :: [JsonField] -> Json
data JsonField
JsonField :: String -> Json -> JsonField

Adding support for additional value types

data JsonGenerator
data JsonParser
class Json a
writeJson :: Json a => JsonGenerator -> a -> <Proc> ()
readJson :: Json a => JsonParser -> <Proc> a
toJson :: Json a => a -> Json
fromJson :: Json a => Json -> a

It is enough to implement toJson and fromJson.

Undocumented entities

lookupJsonField :: String -> Json -> Maybe Json