aeson-1.1.1.0: Fast JSON parsing and encoding

Safe HaskellNone
LanguageHaskell2010

Data.Aeson.Encoding

Description

Functions in this module return well-formed Encoding' . Polymorphic variants, which return Encoding a, return a textual JSON value, so it can be used as both Encoding' Text and Encoding = Encoding' Value .

Synopsis

Encoding

type Encoding = Encoding' Value Source #

Often used synonnym for Encoding' .

data Encoding' tag Source #

An encoding of a JSON value.

tag represents which kind of JSON the Encoding is encoding to, we reuse Text and Value as tags here.

Instances

encodingToLazyByteString :: Encoding' a -> ByteString Source #

fromEncoding :: Encoding' tag -> Builder Source #

Acquire the underlying bytestring builder.

unsafeToEncoding :: Builder -> Encoding' a Source #

Make Encoding from Builder.

Use with care! You have to make sure that the passed Builder is a valid JSON Encoding!

data Series Source #

A series of values that, when encoded, should be separated by commas. Since 0.11.0.0, the .= operator is overloaded to create either (Text, Value) or Series . You can use Series when encoding directly to a bytestring builder as in the following example:

toEncoding (Person name age) = pairs ("name" .= name <> "age" .= age)

Instances

pairs :: Series -> Encoding Source #

Encode a series of key/value pairs, separated by commas.

pair :: Text -> Encoding -> Series Source #

pair' :: Encoding' Text -> Encoding -> Series Source #

Predicates

nullEncoding :: Encoding' a -> Bool Source #

Encoding constructors

emptyArray_ :: Encoding Source #

emptyObject_ :: Encoding Source #

text :: Text -> Encoding' a Source #

lazyText :: Text -> Encoding' a Source #

string :: String -> Encoding' a Source #

list :: (a -> Encoding) -> [a] -> Encoding Source #

dict Source #

Arguments

:: (k -> Encoding' Text)

key encoding

-> (v -> Encoding)

value encoding

-> (forall a. (k -> v -> a -> a) -> a -> m -> a)

foldrWithKey - indexed fold

-> m

container

Encode as JSON object

null_ :: Encoding Source #

bool :: Bool -> Encoding Source #

Decimal numbers

int8 :: Int8 -> Encoding Source #

int16 :: Int16 -> Encoding Source #

int32 :: Int32 -> Encoding Source #

int64 :: Int64 -> Encoding Source #

int :: Int -> Encoding Source #

word8 :: Word8 -> Encoding Source #

word16 :: Word16 -> Encoding Source #

word32 :: Word32 -> Encoding Source #

word64 :: Word64 -> Encoding Source #

word :: Word -> Encoding Source #

integer :: Integer -> Encoding Source #

float :: Float -> Encoding Source #

double :: Double -> Encoding Source #

scientific :: Scientific -> Encoding Source #

Decimal numbers as Text

int8Text :: Int8 -> Encoding' a Source #

int16Text :: Int16 -> Encoding' a Source #

int32Text :: Int32 -> Encoding' a Source #

int64Text :: Int64 -> Encoding' a Source #

intText :: Int -> Encoding' a Source #

word8Text :: Word8 -> Encoding' a Source #

word16Text :: Word16 -> Encoding' a Source #

word32Text :: Word32 -> Encoding' a Source #

word64Text :: Word64 -> Encoding' a Source #

wordText :: Word -> Encoding' a Source #

integerText :: Integer -> Encoding' a Source #

floatText :: Float -> Encoding' a Source #

doubleText :: Double -> Encoding' a Source #

scientificText :: Scientific -> Encoding' a Source #

Time

day :: Day -> Encoding' a Source #

localTime :: LocalTime -> Encoding' a Source #

utcTime :: UTCTime -> Encoding' a Source #

timeOfDay :: TimeOfDay -> Encoding' a Source #

zonedTime :: ZonedTime -> Encoding' a Source #

value

value :: Value -> Encoding Source #

AltStyle によって変換されたページ (->オリジナル) /