This package provides data types, a parser and a pretty printer for JSON.
A JSON value can be a primitive, i.e. true
, false
, null
, a string or a number, an array of JSON values or an object mapping strings to JSON values. In Curry, a JSON value is represented by the data type JValue
from the JSON.Data
module:
data JValue = JTrue
| JFalse
| JNull
| JString String
| JNumber Float
| JArray [JValue]
| JObject [(String, JValue)]
parseJSON
from JSON.Parser
can be used to parse a JSON string into a JValue
:
> parseJSON "{ \"hello\": [\"world\", \"kiel\"] }"
Just (JObject [("hello", JArray [JString "world", JString "kiel"])])
ppJSON
from JSON.Pretty
will turn a JValue
into a pretty printed string. If you want more control over the layout of the resulting string, you can use ppJValue
from the same value to obtain a Doc
for Curry's Pretty
module from a JValue
.