cabal-install-3.12.1.0: The command-line interface for Cabal and Hackage.
Safe HaskellNone
LanguageHaskell2010

Distribution.Client.Utils.Json

Description

Minimal JSON / RFC 7159 support

The API is heavily inspired by aeson's API but puts emphasis on simplicity rather than performance. The ToJSON instances are intended to have an encoding compatible with aeson's encoding.

Synopsis

Documentation

data Value #

A JSON value represented as a Haskell value.

Instances

Instances details
ToJSON Value # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: Value -> Value #

IsString Value # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

fromString :: String -> Value #

Read Value # 
Instance details

Defined in Distribution.Client.Utils.Json

Show Value # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

showsPrec :: Int -> Value -> ShowS #

show :: Value -> String #

showList :: [Value] -> ShowS #

Eq Value # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

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

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

type Object = [Pair] #

A JSON "object" (key/value map).

object :: [Pair] -> Value #

Create a Value from a list of name/value Pairs.

type Pair = (String, Value) #

A key/value pair for an Object

(.=) :: ToJSON v => String -> v -> Pair infixr 8 #

A key-value pair for encoding a JSON object.

encodeToString :: ToJSON a => a -> String #

Serialise value as JSON-encoded Unicode String

encodeToBuilder :: ToJSON a => a -> Builder #

Serialise value as JSON/UTF8-encoded Builder

class ToJSON a where #

A type that can be converted to JSON.

Methods

toJSON :: a -> Value #

Convert a Haskell value to a JSON-friendly intermediate type.

Instances

Instances details
ToJSON Value # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: Value -> Value #

ToJSON Int16 # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: Int16 -> Value #

ToJSON Int32 # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: Int32 -> Value #

ToJSON Int64 #

Possibly lossy due to conversion to Double

Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: Int64 -> Value #

ToJSON Int8 # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: Int8 -> Value #

ToJSON Word16 # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: Word16 -> Value #

ToJSON Word32 # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: Word32 -> Value #

ToJSON Word64 #

Possibly lossy due to conversion to Double

Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: Word64 -> Value #

ToJSON Word8 # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: Word8 -> Value #

ToJSON Integer #

Possibly lossy due to conversion to Double

Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: Integer -> Value #

ToJSON () # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: () -> Value #

ToJSON Bool # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: Bool -> Value #

ToJSON Double # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: Double -> Value #

ToJSON Float # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: Float -> Value #

ToJSON Int # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: Int -> Value #

ToJSON Word # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: Word -> Value #

ToJSON a => ToJSON (Maybe a) # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: Maybe a -> Value #

ToJSON a => ToJSON [a] # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: [a] -> Value #

(ToJSON a, ToJSON b) => ToJSON (a, b) # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: (a, b) -> Value #

(ToJSON a, ToJSON b, ToJSON c) => ToJSON (a, b, c) # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: (a, b, c) -> Value #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d) => ToJSON (a, b, c, d) # 
Instance details

Defined in Distribution.Client.Utils.Json

Methods

toJSON :: (a, b, c, d) -> Value #