| Copyright | (c) Galois Inc. 2007-2009 |
|---|---|
| License | BSD3 |
| Maintainer | Sigbjorn Finne <sof@galois.com> |
| Stability | provisional |
| Portability | portable |
| Safe Haskell | Safe |
| Language | Haskell98 |
Text.JSON.Types
Contents
Description
Synopsis
- 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
Constructors
| JSNull | |
| JSBool !Bool | |
| JSRational Bool !Rational | |
| JSString JSString | |
| JSArray [JSValue] | |
| JSObject (JSObject JSValue) |
Wrapper Types
Strings can be represented a little more efficiently in JSON
Constructors
| JSONString | |
Fields | |
toJSString :: String -> JSString #
Turn a Haskell string into a JSON string.
As can association lists
Constructors
| JSONObject | |
Fields
| |
Instances
| Eq e => Eq (JSObject e) # | |
| Ord e => Ord (JSObject e) # | |
| Read e => Read (JSObject e) # | |
| Show e => Show (JSObject e) # | |
| JSON a => JSON (JSObject a) # | |
toJSObject :: [(String, a)] -> JSObject a #
Make JSON object out of an association list.