json-0.9.3: Support for serialising Haskell to and from JSON

Safe HaskellSafe
LanguageHaskell98

Text.JSON.Types

Contents

Description

Basic support for working with JSON values.

Synopsis

JSON Types

data JSValue #

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

Instances
Eq JSValue # 
Instance details

Defined in Text.JSON.Types

Methods

(==) :: JSValue -> JSValue -> Bool #

(/=) :: JSValue -> JSValue -> Bool #

Ord JSValue # 
Instance details

Defined in Text.JSON.Types

Read JSValue # 
Instance details

Defined in Text.JSON.Types

Show JSValue # 
Instance details

Defined in Text.JSON.Types

IsString JSValue # 
Instance details

Defined in Text.JSON.Types

Methods

fromString :: String -> JSValue #

JSON JSValue #

To ensure we generate valid JSON, we map Haskell types to JSValue internally, then pretty print that.

Instance details

Defined in Text.JSON

Wrapper Types

newtype JSString #

Strings can be represented a little more efficiently in JSON

Constructors

JSONString 

Fields

Instances
Eq JSString # 
Instance details

Defined in Text.JSON.Types

Ord JSString # 
Instance details

Defined in Text.JSON.Types

Read JSString # 
Instance details

Defined in Text.JSON.Types

Show JSString # 
Instance details

Defined in Text.JSON.Types

IsString JSString # 
Instance details

Defined in Text.JSON.Types

JSKey JSString # 
Instance details

Defined in Text.JSON

JSON JSString # 
Instance details

Defined in Text.JSON

toJSString :: String -> JSString #

Turn a Haskell string into a JSON string.

newtype JSObject e #

As can association lists

Constructors

JSONObject 

Fields

Instances
Eq e => Eq (JSObject e) # 
Instance details

Defined in Text.JSON.Types

Methods

(==) :: JSObject e -> JSObject e -> Bool #

(/=) :: JSObject e -> JSObject e -> Bool #

Ord e => Ord (JSObject e) # 
Instance details

Defined in Text.JSON.Types

Methods

compare :: JSObject e -> JSObject e -> Ordering #

(<) :: JSObject e -> JSObject e -> Bool #

(<=) :: JSObject e -> JSObject e -> Bool #

(>) :: JSObject e -> JSObject e -> Bool #

(>=) :: JSObject e -> JSObject e -> Bool #

max :: JSObject e -> JSObject e -> JSObject e #

min :: JSObject e -> JSObject e -> JSObject e #

Read e => Read (JSObject e) # 
Instance details

Defined in Text.JSON.Types

Show e => Show (JSObject e) # 
Instance details

Defined in Text.JSON.Types

Methods

showsPrec :: Int -> JSObject e -> ShowS #

show :: JSObject e -> String #

showList :: [JSObject e] -> ShowS #

JSON a => JSON (JSObject a) # 
Instance details

Defined in Text.JSON

toJSObject :: [(String, a)] -> JSObject a #

Make JSON object out of an association list.

get_field :: JSObject a -> String -> Maybe a #

Get the value of a field, if it exist.

set_field :: JSObject a -> String -> a -> JSObject a #

Set the value of a field. Previous values are overwritten.