Portability | portable |
---|---|
Stability | provisional |
Maintainer | Sigbjorn Finne <sof@galois.com> |
- data JSValue
- newtype JSString = JSONString {}
- toJSString :: String -> JSString
- newtype JSObject e = JSONObject {
- fromJSObject :: [(String, e)]
- toJSObject :: [(String, a)] -> JSObject a
- get_field :: JSObject a -> String -> Maybe a
- set_field :: JSObject a -> String -> a -> JSObject a
JSON Types
JSON values
The type to which we encode Haskell values. There's a set of primitives, and a couple of heterogenous collection types.
Objects:
An object structure is represented as a pair of curly brackets surrounding zero or more name/value pairs (or members). A name is a string. A single colon comes after each name, separating the name from the value. A single comma separates a value from a following name.
Arrays:
An array structure is represented as square brackets surrounding zero or more values (or elements). Elements are separated by commas.
Only valid JSON can be constructed this way
Wrapper Types
Strings can be represented a little more efficiently in JSON
toJSString :: String -> JSStringSource
Turn a Haskell string into a JSON string.
As can association lists
JSONObject | |
|
toJSObject :: [(String, a)] -> JSObject aSource
Make JSON object out of an association list.