rattletrap
Safe HaskellNone
LanguageHaskell2010

Rattletrap.Utility.Json

Synopsis

Documentation

optional :: FromJSON value => Object -> String -> Parser (Maybe value) Source #

pair :: (ToJSON value, KeyValue e p) => String -> value -> p Source #

required :: FromJSON value => Object -> String -> Parser value Source #

class FromJSON a where #

A type that can be converted from JSON, with the possibility of failure.

In many cases, you can get the compiler to generate parsing code for you (see below). To begin, let's cover writing an instance by hand.

There are various reasons a conversion could fail. For example, an Object could be missing a required key, an Array could be of the wrong size, or a value could be of an incompatible type.

The basic ways to signal a failed conversion are as follows:

  • fail yields a custom error message: it is the recommended way of reporting a failure;
  • empty (or mzero) is uninformative: use it when the error is meant to be caught by some (<|>);
  • typeMismatch can be used to report a failure when the encountered value is not of the expected JSON type; unexpected is an appropriate alternative when more than one type may be expected, or to keep the expected type implicit.

prependFailure (or modifyFailure) add more information to a parser's error messages.

An example type and instance using typeMismatch and prependFailure:

-- Allow ourselves to write Text literals.
{-# LANGUAGE OverloadedStrings #-}

data Coord = Coord { x :: Double, y :: Double }

instance FromJSON Coord where
    parseJSON (Object v) = Coord
        <$> v .: "x"
        <*> v .: "y"

    -- We do not expect a non-Object value here.
    -- We could use empty to fail, but typeMismatch
    -- gives a much more informative error message.
    parseJSON invalid    =
        prependFailure "parsing Coord failed, "
            (typeMismatch "Object" invalid)

For this common case of only being concerned with a single type of JSON value, the functions withObject, withScientific, etc. are provided. Their use is to be preferred when possible, since they are more terse. Using withObject, we can rewrite the above instance (assuming the same language extension and data type) as:

instance FromJSON Coord where
    parseJSON = withObject "Coord" $ \v -> Coord
        <$> v .: "x"
        <*> v .: "y"

Instead of manually writing your FromJSON instance, there are two options to do it automatically:

  • Data.Aeson.TH provides Template Haskell functions which will derive an instance at compile time. The generated instance is optimized for your type so it will probably be more efficient than the following option.
  • The compiler can provide a default generic implementation for parseJSON.

To use the second, simply add a deriving Generic clause to your datatype and declare a FromJSON instance for your datatype without giving a definition for parseJSON.

For example, the previous example can be simplified to just:

{-# LANGUAGE DeriveGeneric #-}

import GHC.Generics

data Coord = Coord { x :: Double, y :: Double } deriving Generic

instance FromJSON Coord

or using the DerivingVia extension

deriving via Generically Coord instance FromJSON Coord

The default implementation will be equivalent to parseJSON = genericParseJSON defaultOptions; if you need different options, you can customize the generic decoding by defining:

customOptions = defaultOptions
                { fieldLabelModifier = map toUpper
                }

instance FromJSON Coord where
    parseJSON = genericParseJSON customOptions

Minimal complete definition

Nothing

Methods

parseJSON :: Value -> Parser a #

default parseJSON :: (Generic a, GFromJSON Zero (Rep a)) => Value -> Parser a #

Instances

Instances details
FromJSON Key # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON DotNetTime # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Value # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON IntSet # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Void # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON All #

Since: aeson-2.2.3.0

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Any #

Since: aeson-2.2.3.0

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Version # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON CTime # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Int16 # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Int32 # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Int64 # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Int8 # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Word16 # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Word32 # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Word64 # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Word8 # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Ordering # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON URI #

Since: aeson-2.2.0.0

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Attribute Source # 
Instance details

Defined in Rattletrap.Type.Attribute

FromJSON AppliedDamage Source # 
Instance details

Defined in Rattletrap.Type.Attribute.AppliedDamage

FromJSON Boolean Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Boolean

FromJSON Boost Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Boost

FromJSON Byte Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Byte

FromJSON CamSettings Source # 
Instance details

Defined in Rattletrap.Type.Attribute.CamSettings

FromJSON ClubColors Source # 
Instance details

Defined in Rattletrap.Type.Attribute.ClubColors

FromJSON CustomDemolish Source # 
Instance details

Defined in Rattletrap.Type.Attribute.CustomDemolish

FromJSON CustomDemolishExtended Source # 
Instance details

Defined in Rattletrap.Type.Attribute.CustomDemolishExtended

FromJSON DamageState Source # 
Instance details

Defined in Rattletrap.Type.Attribute.DamageState

FromJSON Demolish Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Demolish

FromJSON Enum Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Enum

FromJSON Explosion Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Explosion

FromJSON ExtendedExplosion Source # 
Instance details

Defined in Rattletrap.Type.Attribute.ExtendedExplosion

FromJSON FlaggedByte Source # 
Instance details

Defined in Rattletrap.Type.Attribute.FlaggedByte

FromJSON FlaggedInt Source # 
Instance details

Defined in Rattletrap.Type.Attribute.FlaggedInt

FromJSON Float Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Float

FromJSON GameMode Source # 
Instance details

Defined in Rattletrap.Type.Attribute.GameMode

FromJSON GameServer Source # 
Instance details

Defined in Rattletrap.Type.Attribute.GameServer

FromJSON Int Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Int

FromJSON Int64 Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Int64

FromJSON Loadout Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Loadout

FromJSON LoadoutOnline Source # 
Instance details

Defined in Rattletrap.Type.Attribute.LoadoutOnline

FromJSON Loadouts Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Loadouts

FromJSON LoadoutsOnline Source # 
Instance details

Defined in Rattletrap.Type.Attribute.LoadoutsOnline

FromJSON Location Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Location

FromJSON MusicStinger Source # 
Instance details

Defined in Rattletrap.Type.Attribute.MusicStinger

FromJSON PartyLeader Source # 
Instance details

Defined in Rattletrap.Type.Attribute.PartyLeader

FromJSON Pickup Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Pickup

FromJSON PickupInfo Source # 
Instance details

Defined in Rattletrap.Type.Attribute.PickupInfo

FromJSON PickupNew Source # 
Instance details

Defined in Rattletrap.Type.Attribute.PickupNew

FromJSON PlayerHistoryKey Source # 
Instance details

Defined in Rattletrap.Type.Attribute.PlayerHistoryKey

FromJSON PrivateMatchSettings Source # 
Instance details

Defined in Rattletrap.Type.Attribute.PrivateMatchSettings

FromJSON Product Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Product

FromJSON ProductValue Source # 
Instance details

Defined in Rattletrap.Type.Attribute.ProductValue

FromJSON QWord Source # 
Instance details

Defined in Rattletrap.Type.Attribute.QWord

FromJSON RepStatTitle Source # 
Instance details

Defined in Rattletrap.Type.Attribute.RepStatTitle

FromJSON Reservation Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Reservation

FromJSON RigidBodyState Source # 
Instance details

Defined in Rattletrap.Type.Attribute.RigidBodyState

FromJSON Rotation Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Rotation

FromJSON StatEvent Source # 
Instance details

Defined in Rattletrap.Type.Attribute.StatEvent

FromJSON String Source # 
Instance details

Defined in Rattletrap.Type.Attribute.String

FromJSON TeamPaint Source # 
Instance details

Defined in Rattletrap.Type.Attribute.TeamPaint

FromJSON Title Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Title

FromJSON UniqueId Source # 
Instance details

Defined in Rattletrap.Type.Attribute.UniqueId

FromJSON WeldedInfo Source # 
Instance details

Defined in Rattletrap.Type.Attribute.WeldedInfo

FromJSON AttributeMapping Source # 
Instance details

Defined in Rattletrap.Type.AttributeMapping

FromJSON AttributeValue Source # 
Instance details

Defined in Rattletrap.Type.AttributeValue

FromJSON Cache Source # 
Instance details

Defined in Rattletrap.Type.Cache

FromJSON ClassMapping Source # 
Instance details

Defined in Rattletrap.Type.ClassMapping

FromJSON CompressedWord Source # 
Instance details

Defined in Rattletrap.Type.CompressedWord

FromJSON CompressedWordVector Source # 
Instance details

Defined in Rattletrap.Type.CompressedWordVector

FromJSON F32 Source # 
Instance details

Defined in Rattletrap.Type.F32

FromJSON Frame Source # 
Instance details

Defined in Rattletrap.Type.Frame

FromJSON Header Source # 
Instance details

Defined in Rattletrap.Type.Header

FromJSON I32 Source # 
Instance details

Defined in Rattletrap.Type.I32

FromJSON I64 Source # 
Instance details

Defined in Rattletrap.Type.I64

FromJSON I8 Source # 
Instance details

Defined in Rattletrap.Type.I8

FromJSON Initialization Source # 
Instance details

Defined in Rattletrap.Type.Initialization

FromJSON Int8Vector Source # 
Instance details

Defined in Rattletrap.Type.Int8Vector

FromJSON Keyframe Source # 
Instance details

Defined in Rattletrap.Type.Keyframe

FromJSON Mark Source # 
Instance details

Defined in Rattletrap.Type.Mark

FromJSON Message Source # 
Instance details

Defined in Rattletrap.Type.Message

FromJSON ObjectTarget Source # 
Instance details

Defined in Rattletrap.Type.ObjectTarget

FromJSON Property Source # 
Instance details

Defined in Rattletrap.Type.Property

FromJSON Bool Source # 
Instance details

Defined in Rattletrap.Type.Property.Bool

FromJSON Byte Source # 
Instance details

Defined in Rattletrap.Type.Property.Byte

FromJSON Float Source # 
Instance details

Defined in Rattletrap.Type.Property.Float

FromJSON Int Source # 
Instance details

Defined in Rattletrap.Type.Property.Int

FromJSON Name Source # 
Instance details

Defined in Rattletrap.Type.Property.Name

FromJSON QWord Source # 
Instance details

Defined in Rattletrap.Type.Property.QWord

FromJSON Str Source # 
Instance details

Defined in Rattletrap.Type.Property.Str

FromJSON Quaternion Source # 
Instance details

Defined in Rattletrap.Type.Quaternion

FromJSON RemoteId Source # 
Instance details

Defined in Rattletrap.Type.RemoteId

FromJSON Epic Source # 
Instance details

Defined in Rattletrap.Type.RemoteId.Epic

FromJSON PlayStation Source # 
Instance details

Defined in Rattletrap.Type.RemoteId.PlayStation

FromJSON PsyNet Source # 
Instance details

Defined in Rattletrap.Type.RemoteId.PsyNet

FromJSON QQ Source # 
Instance details

Defined in Rattletrap.Type.RemoteId.QQ

FromJSON Splitscreen Source # 
Instance details

Defined in Rattletrap.Type.RemoteId.Splitscreen

FromJSON Steam Source # 
Instance details

Defined in Rattletrap.Type.RemoteId.Steam

FromJSON Switch Source # 
Instance details

Defined in Rattletrap.Type.RemoteId.Switch

FromJSON Xbox Source # 
Instance details

Defined in Rattletrap.Type.RemoteId.Xbox

FromJSON Replication Source # 
Instance details

Defined in Rattletrap.Type.Replication

FromJSON Destroyed Source # 
Instance details

Defined in Rattletrap.Type.Replication.Destroyed

FromJSON Spawned Source # 
Instance details

Defined in Rattletrap.Type.Replication.Spawned

FromJSON Updated Source # 
Instance details

Defined in Rattletrap.Type.Replication.Updated

FromJSON ReplicationValue Source # 
Instance details

Defined in Rattletrap.Type.ReplicationValue

FromJSON Rotation Source # 
Instance details

Defined in Rattletrap.Type.Rotation

FromJSON Str Source # 
Instance details

Defined in Rattletrap.Type.Str

FromJSON U32 Source # 
Instance details

Defined in Rattletrap.Type.U32

FromJSON U64 Source # 
Instance details

Defined in Rattletrap.Type.U64

FromJSON U8 Source # 
Instance details

Defined in Rattletrap.Type.U8

FromJSON Vector Source # 
Instance details

Defined in Rattletrap.Type.Vector

FromJSON Scientific # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Text # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Text # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON ShortText #

Since: aeson-2.0.2.0

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON CalendarDiffDays # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Day # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Month # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Quarter # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON QuarterOfYear # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON DayOfWeek # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON DiffTime #

This instance includes a bounds check to prevent maliciously large inputs to fill up the memory of the target system. You can newtype Scientific and provide your own instance using withScientific if you want to allow larger inputs.

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON NominalDiffTime #

This instance includes a bounds check to prevent maliciously large inputs to fill up the memory of the target system. You can newtype Scientific and provide your own instance using withScientific if you want to allow larger inputs.

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON SystemTime # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON UTCTime # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON CalendarDiffTime # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON LocalTime # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON TimeOfDay # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON ZonedTime #

Supported string formats:

YYYY-MM-DD HH:MMZ YYYY-MM-DD HH:MM:SSZ YYYY-MM-DD HH:MM:SS.SSSZ

The first space may instead be a T, and the second space is optional. The Z represents UTC. The Z may be replaced with a time zone offset of the form +0000 or -08:00, where the first two digits are hours, the : is optional and the second two digits (also optional) are minutes.

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON UUID # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Integer #

This instance includes a bounds check to prevent maliciously large inputs to fill up the memory of the target system. You can newtype Scientific and provide your own instance using withScientific if you want to allow larger inputs.

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Natural # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON () # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Bool # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Char # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Double # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Float # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Int # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON Word # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON v => FromJSON (KeyMap v) #

Since: aeson-2.0.1.0

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (First a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Last a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Max a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Min a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (WrappedMonoid a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (IntMap a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Seq a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

(Ord a, FromJSON a) => FromJSON (Set a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON v => FromJSON (Tree v) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON1 f => FromJSON (Fix f) #

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.FromJSON

(FromJSON1 f, Functor f) => FromJSON (Mu f) #

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.FromJSON

(FromJSON1 f, Functor f) => FromJSON (Nu f) #

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (DNonEmpty a) #

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (DList a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (NonEmpty a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Identity a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (First a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Last a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Down a) #

Since: aeson-2.2.0.0

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Dual a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Product a) #

Since: aeson-2.2.3.0

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Sum a) #

Since: aeson-2.2.3.0

Instance details

Defined in Data.Aeson.Types.FromJSON

(Generic a, GFromJSON Zero (Rep a)) => FromJSON (Generically a) #

Since: aeson-2.1.0.0

Instance details

Defined in Data.Aeson.Types.FromJSON

(FromJSON a, Integral a) => FromJSON (Ratio a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Array a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

(Prim a, FromJSON a) => FromJSON (PrimArray a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (SmallArray a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON frames => FromJSON (ContentWith frames) Source # 
Instance details

Defined in Rattletrap.Type.Content

FromJSON a => FromJSON (Dictionary a) Source # 
Instance details

Defined in Rattletrap.Type.Dictionary

FromJSON a => FromJSON (List a) Source # 
Instance details

Defined in Rattletrap.Type.List

FromJSON a => FromJSON (Array a) Source # 
Instance details

Defined in Rattletrap.Type.Property.Array

FromJSON a => FromJSON (Struct a) Source # 
Instance details

Defined in Rattletrap.Type.Property.Struct

FromJSON a => FromJSON (PropertyValue a) Source # 
Instance details

Defined in Rattletrap.Type.PropertyValue

FromJSON a => FromJSON (Section a) Source # 
Instance details

Defined in Rattletrap.Type.Section

FromJSON a => FromJSON (Maybe a) #

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.FromJSON

(Eq a, Hashable a, FromJSON a) => FromJSON (HashSet a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Vector a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

(Prim a, FromJSON a) => FromJSON (Vector a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

(Storable a, FromJSON a) => FromJSON (Vector a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

(Vector Vector a, FromJSON a) => FromJSON (Vector a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

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

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON (Solo a) #

Since: aeson-2.0.2.0

Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON a => FromJSON [a] # 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser [a] #

parseJSONList :: Value -> Parser [[a]] #

omittedField :: Maybe [a] #

HasResolution a => FromJSON (Fixed a) #

This instance includes a bounds check to prevent maliciously large inputs to fill up the memory of the target system. You can newtype Scientific and provide your own instance using withScientific if you want to allow larger inputs.

Instance details

Defined in Data.Aeson.Types.FromJSON

(FromJSONKey k, Ord k, FromJSON v) => FromJSON (Map k v) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Map k v) #

parseJSONList :: Value -> Parser [Map k v] #

omittedField :: Maybe (Map k v) #

(FromJSON a, FromJSON b) => FromJSON (Either a b) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON (Proxy a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

(FromJSON h, FromJSON c) => FromJSON (ReplayWith h c) Source # 
Instance details

Defined in Rattletrap.Type.Replay

(FromJSON a, FromJSON b) => FromJSON (Either a b) #

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.FromJSON

(FromJSON a, FromJSON b) => FromJSON (These a b) #

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.FromJSON

(FromJSON a, FromJSON b) => FromJSON (Pair a b) #

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Pair a b) #

parseJSONList :: Value -> Parser [Pair a b] #

omittedField :: Maybe (Pair a b) #

(FromJSON a, FromJSON b) => FromJSON (These a b) #

Since: aeson-1.5.1.0

Instance details

Defined in Data.Aeson.Types.FromJSON

(FromJSON v, FromJSONKey k, Eq k, Hashable k) => FromJSON (HashMap k v) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

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

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b) #

parseJSONList :: Value -> Parser [(a, b)] #

omittedField :: Maybe (a, b) #

FromJSON a => FromJSON (Const a b) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSON b => FromJSON (Tagged a b) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

(FromJSON1 f, FromJSON1 g, FromJSON a) => FromJSON (These1 f g a) #

Since: aeson-1.5.1.0

Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (These1 f g a) #

parseJSONList :: Value -> Parser [These1 f g a] #

omittedField :: Maybe (These1 f g a) #

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

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c) #

parseJSONList :: Value -> Parser [(a, b, c)] #

omittedField :: Maybe (a, b, c) #

(FromJSON1 f, FromJSON1 g, FromJSON a) => FromJSON (Product f g a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Product f g a) #

parseJSONList :: Value -> Parser [Product f g a] #

omittedField :: Maybe (Product f g a) #

(FromJSON1 f, FromJSON1 g, FromJSON a) => FromJSON (Sum f g a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Sum f g a) #

parseJSONList :: Value -> Parser [Sum f g a] #

omittedField :: Maybe (Sum f g a) #

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

Defined in Data.Aeson.Types.FromJSON

Methods

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

parseJSONList :: Value -> Parser [(a, b, c, d)] #

omittedField :: Maybe (a, b, c, d) #

(FromJSON1 f, FromJSON1 g, FromJSON a) => FromJSON (Compose f g a) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (Compose f g a) #

parseJSONList :: Value -> Parser [Compose f g a] #

omittedField :: Maybe (Compose f g a) #

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

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e) #

parseJSONList :: Value -> Parser [(a, b, c, d, e)] #

omittedField :: Maybe (a, b, c, d, e) #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f) => FromJSON (a, b, c, d, e, f) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f)] #

omittedField :: Maybe (a, b, c, d, e, f) #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g) => FromJSON (a, b, c, d, e, f, g) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g)] #

omittedField :: Maybe (a, b, c, d, e, f, g) #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h) => FromJSON (a, b, c, d, e, f, g, h) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h)] #

omittedField :: Maybe (a, b, c, d, e, f, g, h) #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i) => FromJSON (a, b, c, d, e, f, g, h, i) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i)] #

omittedField :: Maybe (a, b, c, d, e, f, g, h, i) #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i, FromJSON j) => FromJSON (a, b, c, d, e, f, g, h, i, j) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i, j) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i, j)] #

omittedField :: Maybe (a, b, c, d, e, f, g, h, i, j) #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i, FromJSON j, FromJSON k) => FromJSON (a, b, c, d, e, f, g, h, i, j, k) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i, j, k) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i, j, k)] #

omittedField :: Maybe (a, b, c, d, e, f, g, h, i, j, k) #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i, FromJSON j, FromJSON k, FromJSON l) => FromJSON (a, b, c, d, e, f, g, h, i, j, k, l) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i, j, k, l) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i, j, k, l)] #

omittedField :: Maybe (a, b, c, d, e, f, g, h, i, j, k, l) #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i, FromJSON j, FromJSON k, FromJSON l, FromJSON m) => FromJSON (a, b, c, d, e, f, g, h, i, j, k, l, m) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i, j, k, l, m) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i, j, k, l, m)] #

omittedField :: Maybe (a, b, c, d, e, f, g, h, i, j, k, l, m) #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i, FromJSON j, FromJSON k, FromJSON l, FromJSON m, FromJSON n) => FromJSON (a, b, c, d, e, f, g, h, i, j, k, l, m, n) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i, j, k, l, m, n) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i, j, k, l, m, n)] #

omittedField :: Maybe (a, b, c, d, e, f, g, h, i, j, k, l, m, n) #

(FromJSON a, FromJSON b, FromJSON c, FromJSON d, FromJSON e, FromJSON f, FromJSON g, FromJSON h, FromJSON i, FromJSON j, FromJSON k, FromJSON l, FromJSON m, FromJSON n, FromJSON o) => FromJSON (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) # 
Instance details

Defined in Data.Aeson.Types.FromJSON

Methods

parseJSON :: Value -> Parser (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) #

parseJSONList :: Value -> Parser [(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)] #

omittedField :: Maybe (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) #

data Key #

Instances

Instances details
Arbitrary Key #

Since: aeson-2.0.3.0

Instance details

Defined in Data.Aeson.Key

Methods

arbitrary :: Gen Key #

shrink :: Key -> [Key] #

CoArbitrary Key #

Since: aeson-2.0.3.0

Instance details

Defined in Data.Aeson.Key

Methods

coarbitrary :: Key -> Gen b -> Gen b #

Function Key #

Since: aeson-2.0.3.0

Instance details

Defined in Data.Aeson.Key

Methods

function :: (Key -> b) -> Key :-> b #

FromJSON Key # 
Instance details

Defined in Data.Aeson.Types.FromJSON

FromJSONKey Key # 
Instance details

Defined in Data.Aeson.Types.FromJSON

ToJSON Key # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSONKey Key # 
Instance details

Defined in Data.Aeson.Types.ToJSON

NFData Key # 
Instance details

Defined in Data.Aeson.Key

Methods

rnf :: Key -> () #

Monoid Key # 
Instance details

Defined in Data.Aeson.Key

Methods

mempty :: Key #

mappend :: Key -> Key -> Key #

mconcat :: [Key] -> Key #

Semigroup Key # 
Instance details

Defined in Data.Aeson.Key

Methods

(<>) :: Key -> Key -> Key #

sconcat :: NonEmpty Key -> Key #

stimes :: Integral b => b -> Key -> Key #

Data Key # 
Instance details

Defined in Data.Aeson.Key

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Key -> c Key #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Key #

toConstr :: Key -> Constr #

dataTypeOf :: Key -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Key) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Key) #

gmapT :: (forall b. Data b => b -> b) -> Key -> Key #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Key -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Key -> r #

gmapQ :: (forall d. Data d => d -> u) -> Key -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Key -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Key -> m Key #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Key -> m Key #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Key -> m Key #

IsString Key # 
Instance details

Defined in Data.Aeson.Key

Methods

fromString :: String -> Key #

Read Key # 
Instance details

Defined in Data.Aeson.Key

Show Key # 
Instance details

Defined in Data.Aeson.Key

Methods

showsPrec :: Int -> Key -> ShowS #

show :: Key -> String #

showList :: [Key] -> ShowS #

Eq Key # 
Instance details

Defined in Data.Aeson.Key

Methods

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

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

Ord Key # 
Instance details

Defined in Data.Aeson.Key

Methods

compare :: Key -> Key -> Ordering #

(<) :: Key -> Key -> Bool #

(<=) :: Key -> Key -> Bool #

(>) :: Key -> Key -> Bool #

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

max :: Key -> Key -> Key #

min :: Key -> Key -> Key #

Hashable Key # 
Instance details

Defined in Data.Aeson.Key

Methods

hashWithSalt :: Int -> Key -> Int #

hash :: Key -> Int #

Lift Key # 
Instance details

Defined in Data.Aeson.Key

Methods

lift :: Quote m => Key -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => Key -> Code m Key #

FoldableWithIndex Key KeyMap # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

ifoldMap :: Monoid m => (Key -> a -> m) -> KeyMap a -> m #

ifoldMap' :: Monoid m => (Key -> a -> m) -> KeyMap a -> m #

ifoldr :: (Key -> a -> b -> b) -> b -> KeyMap a -> b #

ifoldl :: (Key -> b -> a -> b) -> b -> KeyMap a -> b #

ifoldr' :: (Key -> a -> b -> b) -> b -> KeyMap a -> b #

ifoldl' :: (Key -> b -> a -> b) -> b -> KeyMap a -> b #

FunctorWithIndex Key KeyMap # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

imap :: (Key -> a -> b) -> KeyMap a -> KeyMap b #

TraversableWithIndex Key KeyMap # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

itraverse :: Applicative f => (Key -> a -> f b) -> KeyMap a -> f (KeyMap b) #

SemialignWithIndex Key KeyMap # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

ialignWith :: (Key -> These a b -> c) -> KeyMap a -> KeyMap b -> KeyMap c #

ZipWithIndex Key KeyMap # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

izipWith :: (Key -> a -> b -> c) -> KeyMap a -> KeyMap b -> KeyMap c #

FilterableWithIndex Key KeyMap # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

imapMaybe :: (Key -> a -> Maybe b) -> KeyMap a -> KeyMap b #

ifilter :: (Key -> a -> Bool) -> KeyMap a -> KeyMap a #

WitherableWithIndex Key KeyMap # 
Instance details

Defined in Data.Aeson.KeyMap

Methods

iwither :: Applicative f => (Key -> a -> f (Maybe b)) -> KeyMap a -> f (KeyMap b) #

iwitherM :: Monad m => (Key -> a -> m (Maybe b)) -> KeyMap a -> m (KeyMap b) #

ifilterA :: Applicative f => (Key -> a -> f Bool) -> KeyMap a -> f (KeyMap a) #

FromPairs Value (DList Pair) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

fromPairs :: DList Pair -> Value

v ~ Value => KeyValuePair v (DList Pair) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

pair :: Key -> v -> DList Pair

class ToJSON a where #

A type that can be converted to JSON.

Instances in general must specify toJSON and should (but don't need to) specify toEncoding.

An example type and instance:

-- Allow ourselves to write Text literals.
{-# LANGUAGE OverloadedStrings #-}

data Coord = Coord { x :: Double, y :: Double }

instance ToJSON Coord where
  toJSON (Coord x y) = object ["x" .= x, "y" .= y]

  toEncoding (Coord x y) = pairs ("x" .= x <> "y" .= y)

Instead of manually writing your ToJSON instance, there are two options to do it automatically:

  • Data.Aeson.TH provides Template Haskell functions which will derive an instance at compile time. The generated instance is optimized for your type so it will probably be more efficient than the following option.
  • The compiler can provide a default generic implementation for toJSON.

To use the second, simply add a deriving Generic clause to your datatype and declare a ToJSON instance. If you require nothing other than defaultOptions, it is sufficient to write (and this is the only alternative where the default toJSON implementation is sufficient):

{-# LANGUAGE DeriveGeneric #-}

import GHC.Generics

data Coord = Coord { x :: Double, y :: Double } deriving Generic

instance ToJSON Coord where
    toEncoding = genericToEncoding defaultOptions

or more conveniently using the DerivingVia extension

deriving via Generically Coord instance ToJSON Coord

If on the other hand you wish to customize the generic decoding, you have to implement both methods:

customOptions = defaultOptions
                { fieldLabelModifier = map toUpper
                }

instance ToJSON Coord where
    toJSON     = genericToJSON customOptions
    toEncoding = genericToEncoding customOptions

Previous versions of this library only had the toJSON method. Adding toEncoding had two reasons:

  1. toEncoding is more efficient for the common case that the output of toJSON is directly serialized to a ByteString. Further, expressing either method in terms of the other would be non-optimal.
  2. The choice of defaults allows a smooth transition for existing users: Existing instances that do not define toEncoding still compile and have the correct semantics. This is ensured by making the default implementation of toEncoding use toJSON. This produces correct results, but since it performs an intermediate conversion to a Value, it will be less efficient than directly emitting an Encoding. (this also means that specifying nothing more than instance ToJSON Coord would be sufficient as a generically decoding instance, but there probably exists no good reason to not specify toEncoding in new instances.)

Minimal complete definition

Nothing

Methods

toJSON :: a -> Value #

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

default toJSON :: (Generic a, GToJSON' Value Zero (Rep a)) => a -> Value #

Instances

Instances details
ToJSON Key # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON DotNetTime # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Value # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON IntSet # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Void # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON All #

Since: aeson-2.2.3.0

Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Any #

Since: aeson-2.2.3.0

Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Version # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON CTime # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Int16 # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Int32 # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Int64 # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Int8 # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Word16 # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Word32 # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Word64 # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Word8 # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Ordering # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON URI #

Since: aeson-2.2.0.0

Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Attribute Source # 
Instance details

Defined in Rattletrap.Type.Attribute

ToJSON AppliedDamage Source # 
Instance details

Defined in Rattletrap.Type.Attribute.AppliedDamage

ToJSON Boolean Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Boolean

ToJSON Boost Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Boost

ToJSON Byte Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Byte

ToJSON CamSettings Source # 
Instance details

Defined in Rattletrap.Type.Attribute.CamSettings

ToJSON ClubColors Source # 
Instance details

Defined in Rattletrap.Type.Attribute.ClubColors

ToJSON CustomDemolish Source # 
Instance details

Defined in Rattletrap.Type.Attribute.CustomDemolish

ToJSON CustomDemolishExtended Source # 
Instance details

Defined in Rattletrap.Type.Attribute.CustomDemolishExtended

ToJSON DamageState Source # 
Instance details

Defined in Rattletrap.Type.Attribute.DamageState

ToJSON Demolish Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Demolish

ToJSON Enum Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Enum

ToJSON Explosion Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Explosion

ToJSON ExtendedExplosion Source # 
Instance details

Defined in Rattletrap.Type.Attribute.ExtendedExplosion

ToJSON FlaggedByte Source # 
Instance details

Defined in Rattletrap.Type.Attribute.FlaggedByte

ToJSON FlaggedInt Source # 
Instance details

Defined in Rattletrap.Type.Attribute.FlaggedInt

ToJSON Float Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Float

ToJSON GameMode Source # 
Instance details

Defined in Rattletrap.Type.Attribute.GameMode

ToJSON GameServer Source # 
Instance details

Defined in Rattletrap.Type.Attribute.GameServer

ToJSON Int Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Int

ToJSON Int64 Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Int64

ToJSON Loadout Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Loadout

ToJSON LoadoutOnline Source # 
Instance details

Defined in Rattletrap.Type.Attribute.LoadoutOnline

ToJSON Loadouts Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Loadouts

ToJSON LoadoutsOnline Source # 
Instance details

Defined in Rattletrap.Type.Attribute.LoadoutsOnline

ToJSON Location Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Location

ToJSON MusicStinger Source # 
Instance details

Defined in Rattletrap.Type.Attribute.MusicStinger

ToJSON PartyLeader Source # 
Instance details

Defined in Rattletrap.Type.Attribute.PartyLeader

ToJSON Pickup Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Pickup

ToJSON PickupInfo Source # 
Instance details

Defined in Rattletrap.Type.Attribute.PickupInfo

ToJSON PickupNew Source # 
Instance details

Defined in Rattletrap.Type.Attribute.PickupNew

ToJSON PlayerHistoryKey Source # 
Instance details

Defined in Rattletrap.Type.Attribute.PlayerHistoryKey

ToJSON PrivateMatchSettings Source # 
Instance details

Defined in Rattletrap.Type.Attribute.PrivateMatchSettings

ToJSON Product Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Product

ToJSON ProductValue Source # 
Instance details

Defined in Rattletrap.Type.Attribute.ProductValue

ToJSON QWord Source # 
Instance details

Defined in Rattletrap.Type.Attribute.QWord

ToJSON RepStatTitle Source # 
Instance details

Defined in Rattletrap.Type.Attribute.RepStatTitle

ToJSON Reservation Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Reservation

ToJSON RigidBodyState Source # 
Instance details

Defined in Rattletrap.Type.Attribute.RigidBodyState

ToJSON Rotation Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Rotation

ToJSON StatEvent Source # 
Instance details

Defined in Rattletrap.Type.Attribute.StatEvent

ToJSON String Source # 
Instance details

Defined in Rattletrap.Type.Attribute.String

ToJSON TeamPaint Source # 
Instance details

Defined in Rattletrap.Type.Attribute.TeamPaint

ToJSON Title Source # 
Instance details

Defined in Rattletrap.Type.Attribute.Title

ToJSON UniqueId Source # 
Instance details

Defined in Rattletrap.Type.Attribute.UniqueId

ToJSON WeldedInfo Source # 
Instance details

Defined in Rattletrap.Type.Attribute.WeldedInfo

ToJSON AttributeMapping Source # 
Instance details

Defined in Rattletrap.Type.AttributeMapping

ToJSON AttributeValue Source # 
Instance details

Defined in Rattletrap.Type.AttributeValue

ToJSON Cache Source # 
Instance details

Defined in Rattletrap.Type.Cache

ToJSON ClassMapping Source # 
Instance details

Defined in Rattletrap.Type.ClassMapping

ToJSON CompressedWord Source # 
Instance details

Defined in Rattletrap.Type.CompressedWord

ToJSON CompressedWordVector Source # 
Instance details

Defined in Rattletrap.Type.CompressedWordVector

ToJSON F32 Source # 
Instance details

Defined in Rattletrap.Type.F32

ToJSON Frame Source # 
Instance details

Defined in Rattletrap.Type.Frame

ToJSON Header Source # 
Instance details

Defined in Rattletrap.Type.Header

ToJSON I32 Source # 
Instance details

Defined in Rattletrap.Type.I32

ToJSON I64 Source # 
Instance details

Defined in Rattletrap.Type.I64

ToJSON I8 Source # 
Instance details

Defined in Rattletrap.Type.I8

ToJSON Initialization Source # 
Instance details

Defined in Rattletrap.Type.Initialization

ToJSON Int8Vector Source # 
Instance details

Defined in Rattletrap.Type.Int8Vector

ToJSON Keyframe Source # 
Instance details

Defined in Rattletrap.Type.Keyframe

ToJSON Mark Source # 
Instance details

Defined in Rattletrap.Type.Mark

ToJSON Message Source # 
Instance details

Defined in Rattletrap.Type.Message

ToJSON ObjectTarget Source # 
Instance details

Defined in Rattletrap.Type.ObjectTarget

ToJSON Property Source # 
Instance details

Defined in Rattletrap.Type.Property

ToJSON Bool Source # 
Instance details

Defined in Rattletrap.Type.Property.Bool

ToJSON Byte Source # 
Instance details

Defined in Rattletrap.Type.Property.Byte

ToJSON Float Source # 
Instance details

Defined in Rattletrap.Type.Property.Float

ToJSON Int Source # 
Instance details

Defined in Rattletrap.Type.Property.Int

ToJSON Name Source # 
Instance details

Defined in Rattletrap.Type.Property.Name

ToJSON QWord Source # 
Instance details

Defined in Rattletrap.Type.Property.QWord

ToJSON Str Source # 
Instance details

Defined in Rattletrap.Type.Property.Str

ToJSON Quaternion Source # 
Instance details

Defined in Rattletrap.Type.Quaternion

ToJSON RemoteId Source # 
Instance details

Defined in Rattletrap.Type.RemoteId

ToJSON Epic Source # 
Instance details

Defined in Rattletrap.Type.RemoteId.Epic

ToJSON PlayStation Source # 
Instance details

Defined in Rattletrap.Type.RemoteId.PlayStation

ToJSON PsyNet Source # 
Instance details

Defined in Rattletrap.Type.RemoteId.PsyNet

ToJSON QQ Source # 
Instance details

Defined in Rattletrap.Type.RemoteId.QQ

ToJSON Splitscreen Source # 
Instance details

Defined in Rattletrap.Type.RemoteId.Splitscreen

ToJSON Steam Source # 
Instance details

Defined in Rattletrap.Type.RemoteId.Steam

ToJSON Switch Source # 
Instance details

Defined in Rattletrap.Type.RemoteId.Switch

ToJSON Xbox Source # 
Instance details

Defined in Rattletrap.Type.RemoteId.Xbox

ToJSON Replication Source # 
Instance details

Defined in Rattletrap.Type.Replication

ToJSON Destroyed Source # 
Instance details

Defined in Rattletrap.Type.Replication.Destroyed

ToJSON Spawned Source # 
Instance details

Defined in Rattletrap.Type.Replication.Spawned

ToJSON Updated Source # 
Instance details

Defined in Rattletrap.Type.Replication.Updated

ToJSON ReplicationValue Source # 
Instance details

Defined in Rattletrap.Type.ReplicationValue

ToJSON Rotation Source # 
Instance details

Defined in Rattletrap.Type.Rotation

ToJSON Str Source # 
Instance details

Defined in Rattletrap.Type.Str

ToJSON U32 Source # 
Instance details

Defined in Rattletrap.Type.U32

ToJSON U64 Source # 
Instance details

Defined in Rattletrap.Type.U64

ToJSON U8 Source # 
Instance details

Defined in Rattletrap.Type.U8

ToJSON Vector Source # 
Instance details

Defined in Rattletrap.Type.Vector

ToJSON Scientific # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Text # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Text # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON ShortText #

Since: aeson-2.0.2.0

Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON CalendarDiffDays # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Day # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Month # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Quarter # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON QuarterOfYear # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON DayOfWeek # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON DiffTime # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON NominalDiffTime # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON SystemTime #

Encoded as number

Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON UTCTime # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON CalendarDiffTime # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON LocalTime # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON TimeOfDay # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON ZonedTime # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON UUID # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Integer # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Natural # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON () # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: () -> Value #

toEncoding :: () -> Encoding #

toJSONList :: [()] -> Value #

toEncodingList :: [()] -> Encoding #

omitField :: () -> Bool #

ToJSON Bool # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Char # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Double # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Float # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Int # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON Word # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON v => ToJSON (KeyMap v) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

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

Defined in Data.Aeson.Types.ToJSON

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

Defined in Data.Aeson.Types.ToJSON

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

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Max a -> Value #

toEncoding :: Max a -> Encoding #

toJSONList :: [Max a] -> Value #

toEncodingList :: [Max a] -> Encoding #

omitField :: Max a -> Bool #

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

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Min a -> Value #

toEncoding :: Min a -> Encoding #

toJSONList :: [Min a] -> Value #

toEncodingList :: [Min a] -> Encoding #

omitField :: Min a -> Bool #

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

Defined in Data.Aeson.Types.ToJSON

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

Defined in Data.Aeson.Types.ToJSON

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

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Seq a -> Value #

toEncoding :: Seq a -> Encoding #

toJSONList :: [Seq a] -> Value #

toEncodingList :: [Seq a] -> Encoding #

omitField :: Seq a -> Bool #

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

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Set a -> Value #

toEncoding :: Set a -> Encoding #

toJSONList :: [Set a] -> Value #

toEncodingList :: [Set a] -> Encoding #

omitField :: Set a -> Bool #

ToJSON v => ToJSON (Tree v) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON1 f => ToJSON (Fix f) #

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Fix f -> Value #

toEncoding :: Fix f -> Encoding #

toJSONList :: [Fix f] -> Value #

toEncodingList :: [Fix f] -> Encoding #

omitField :: Fix f -> Bool #

(ToJSON1 f, Functor f) => ToJSON (Mu f) #

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Mu f -> Value #

toEncoding :: Mu f -> Encoding #

toJSONList :: [Mu f] -> Value #

toEncodingList :: [Mu f] -> Encoding #

omitField :: Mu f -> Bool #

(ToJSON1 f, Functor f) => ToJSON (Nu f) #

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Nu f -> Value #

toEncoding :: Nu f -> Encoding #

toJSONList :: [Nu f] -> Value #

toEncodingList :: [Nu f] -> Encoding #

omitField :: Nu f -> Bool #

ToJSON a => ToJSON (DNonEmpty a) #

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.ToJSON

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

Defined in Data.Aeson.Types.ToJSON

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

Defined in Data.Aeson.Types.ToJSON

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

Defined in Data.Aeson.Types.ToJSON

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

Defined in Data.Aeson.Types.ToJSON

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

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (Down a) #

Since: aeson-2.2.0.0

Instance details

Defined in Data.Aeson.Types.ToJSON

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

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (Product a) #

Since: aeson-2.2.3.0

Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (Sum a) #

Since: aeson-2.2.3.0

Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Sum a -> Value #

toEncoding :: Sum a -> Encoding #

toJSONList :: [Sum a] -> Value #

toEncodingList :: [Sum a] -> Encoding #

omitField :: Sum a -> Bool #

(Generic a, GToJSON' Value Zero (Rep a), GToJSON' Encoding Zero (Rep a)) => ToJSON (Generically a) #

Since: aeson-2.1.0.0

Instance details

Defined in Data.Aeson.Types.ToJSON

(ToJSON a, Integral a) => ToJSON (Ratio a) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

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

Defined in Data.Aeson.Types.ToJSON

(Prim a, ToJSON a) => ToJSON (PrimArray a) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

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

Defined in Data.Aeson.Types.ToJSON

ToJSON frames => ToJSON (ContentWith frames) Source # 
Instance details

Defined in Rattletrap.Type.Content

ToJSON a => ToJSON (Dictionary a) Source # 
Instance details

Defined in Rattletrap.Type.Dictionary

ToJSON a => ToJSON (List a) Source # 
Instance details

Defined in Rattletrap.Type.List

ToJSON a => ToJSON (Array a) Source # 
Instance details

Defined in Rattletrap.Type.Property.Array

ToJSON a => ToJSON (Struct a) Source # 
Instance details

Defined in Rattletrap.Type.Property.Struct

ToJSON a => ToJSON (PropertyValue a) Source # 
Instance details

Defined in Rattletrap.Type.PropertyValue

ToJSON a => ToJSON (Section a) Source # 
Instance details

Defined in Rattletrap.Type.Section

ToJSON a => ToJSON (Maybe a) #

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.ToJSON

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

Defined in Data.Aeson.Types.ToJSON

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

Defined in Data.Aeson.Types.ToJSON

(Prim a, ToJSON a) => ToJSON (Vector a) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

(Storable a, ToJSON a) => ToJSON (Vector a) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

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

Defined in Data.Aeson.Types.ToJSON

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

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON (Solo a) #

Since: aeson-2.0.2.0

Instance details

Defined in Data.Aeson.Types.ToJSON

ToJSON a => ToJSON [a] # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: [a] -> Value #

toEncoding :: [a] -> Encoding #

toJSONList :: [[a]] -> Value #

toEncodingList :: [[a]] -> Encoding #

omitField :: [a] -> Bool #

HasResolution a => ToJSON (Fixed a) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

(ToJSON v, ToJSONKey k) => ToJSON (Map k v) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Map k v -> Value #

toEncoding :: Map k v -> Encoding #

toJSONList :: [Map k v] -> Value #

toEncodingList :: [Map k v] -> Encoding #

omitField :: Map k v -> Bool #

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

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Either a b -> Value #

toEncoding :: Either a b -> Encoding #

toJSONList :: [Either a b] -> Value #

toEncodingList :: [Either a b] -> Encoding #

omitField :: Either a b -> Bool #

ToJSON (Proxy a) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

(ToJSON h, ToJSON c) => ToJSON (ReplayWith h c) Source # 
Instance details

Defined in Rattletrap.Type.Replay

(ToJSON a, ToJSON b) => ToJSON (Either a b) #

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Either a b -> Value #

toEncoding :: Either a b -> Encoding #

toJSONList :: [Either a b] -> Value #

toEncodingList :: [Either a b] -> Encoding #

omitField :: Either a b -> Bool #

(ToJSON a, ToJSON b) => ToJSON (These a b) #

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: These a b -> Value #

toEncoding :: These a b -> Encoding #

toJSONList :: [These a b] -> Value #

toEncodingList :: [These a b] -> Encoding #

omitField :: These a b -> Bool #

(ToJSON a, ToJSON b) => ToJSON (Pair a b) #

Since: aeson-1.5.3.0

Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Pair a b -> Value #

toEncoding :: Pair a b -> Encoding #

toJSONList :: [Pair a b] -> Value #

toEncodingList :: [Pair a b] -> Encoding #

omitField :: Pair a b -> Bool #

(ToJSON a, ToJSON b) => ToJSON (These a b) #

Since: aeson-1.5.1.0

Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: These a b -> Value #

toEncoding :: These a b -> Encoding #

toJSONList :: [These a b] -> Value #

toEncodingList :: [These a b] -> Encoding #

omitField :: These a b -> Bool #

(ToJSON v, ToJSONKey k) => ToJSON (HashMap k v) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

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

Defined in Data.Aeson.Types.ToJSON

Methods

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

toEncoding :: (a, b) -> Encoding #

toJSONList :: [(a, b)] -> Value #

toEncodingList :: [(a, b)] -> Encoding #

omitField :: (a, b) -> Bool #

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

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Const a b -> Value #

toEncoding :: Const a b -> Encoding #

toJSONList :: [Const a b] -> Value #

toEncodingList :: [Const a b] -> Encoding #

omitField :: Const a b -> Bool #

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

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Tagged a b -> Value #

toEncoding :: Tagged a b -> Encoding #

toJSONList :: [Tagged a b] -> Value #

toEncodingList :: [Tagged a b] -> Encoding #

omitField :: Tagged a b -> Bool #

(ToJSON1 f, ToJSON1 g, ToJSON a) => ToJSON (These1 f g a) #

Since: aeson-1.5.1.0

Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: These1 f g a -> Value #

toEncoding :: These1 f g a -> Encoding #

toJSONList :: [These1 f g a] -> Value #

toEncodingList :: [These1 f g a] -> Encoding #

omitField :: These1 f g a -> Bool #

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

Defined in Data.Aeson.Types.ToJSON

Methods

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

toEncoding :: (a, b, c) -> Encoding #

toJSONList :: [(a, b, c)] -> Value #

toEncodingList :: [(a, b, c)] -> Encoding #

omitField :: (a, b, c) -> Bool #

(ToJSON1 f, ToJSON1 g, ToJSON a) => ToJSON (Product f g a) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Product f g a -> Value #

toEncoding :: Product f g a -> Encoding #

toJSONList :: [Product f g a] -> Value #

toEncodingList :: [Product f g a] -> Encoding #

omitField :: Product f g a -> Bool #

(ToJSON1 f, ToJSON1 g, ToJSON a) => ToJSON (Sum f g a) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Sum f g a -> Value #

toEncoding :: Sum f g a -> Encoding #

toJSONList :: [Sum f g a] -> Value #

toEncodingList :: [Sum f g a] -> Encoding #

omitField :: Sum f g a -> Bool #

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

Defined in Data.Aeson.Types.ToJSON

Methods

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

toEncoding :: (a, b, c, d) -> Encoding #

toJSONList :: [(a, b, c, d)] -> Value #

toEncodingList :: [(a, b, c, d)] -> Encoding #

omitField :: (a, b, c, d) -> Bool #

(ToJSON1 f, ToJSON1 g, ToJSON a) => ToJSON (Compose f g a) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: Compose f g a -> Value #

toEncoding :: Compose f g a -> Encoding #

toJSONList :: [Compose f g a] -> Value #

toEncodingList :: [Compose f g a] -> Encoding #

omitField :: Compose f g a -> Bool #

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

Defined in Data.Aeson.Types.ToJSON

Methods

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

toEncoding :: (a, b, c, d, e) -> Encoding #

toJSONList :: [(a, b, c, d, e)] -> Value #

toEncodingList :: [(a, b, c, d, e)] -> Encoding #

omitField :: (a, b, c, d, e) -> Bool #

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

Defined in Data.Aeson.Types.ToJSON

Methods

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

toEncoding :: (a, b, c, d, e, f) -> Encoding #

toJSONList :: [(a, b, c, d, e, f)] -> Value #

toEncodingList :: [(a, b, c, d, e, f)] -> Encoding #

omitField :: (a, b, c, d, e, f) -> Bool #

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

Defined in Data.Aeson.Types.ToJSON

Methods

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

toEncoding :: (a, b, c, d, e, f, g) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g)] -> Encoding #

omitField :: (a, b, c, d, e, f, g) -> Bool #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h) => ToJSON (a, b, c, d, e, f, g, h) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c, d, e, f, g, h) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h)] -> Encoding #

omitField :: (a, b, c, d, e, f, g, h) -> Bool #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i) => ToJSON (a, b, c, d, e, f, g, h, i) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c, d, e, f, g, h, i) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i)] -> Encoding #

omitField :: (a, b, c, d, e, f, g, h, i) -> Bool #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j) => ToJSON (a, b, c, d, e, f, g, h, i, j) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c, d, e, f, g, h, i, j) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i, j) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i, j)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i, j)] -> Encoding #

omitField :: (a, b, c, d, e, f, g, h, i, j) -> Bool #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j, ToJSON k) => ToJSON (a, b, c, d, e, f, g, h, i, j, k) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c, d, e, f, g, h, i, j, k) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i, j, k) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i, j, k)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i, j, k)] -> Encoding #

omitField :: (a, b, c, d, e, f, g, h, i, j, k) -> Bool #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j, ToJSON k, ToJSON l) => ToJSON (a, b, c, d, e, f, g, h, i, j, k, l) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c, d, e, f, g, h, i, j, k, l) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i, j, k, l) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i, j, k, l)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i, j, k, l)] -> Encoding #

omitField :: (a, b, c, d, e, f, g, h, i, j, k, l) -> Bool #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j, ToJSON k, ToJSON l, ToJSON m) => ToJSON (a, b, c, d, e, f, g, h, i, j, k, l, m) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c, d, e, f, g, h, i, j, k, l, m) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i, j, k, l, m) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i, j, k, l, m)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i, j, k, l, m)] -> Encoding #

omitField :: (a, b, c, d, e, f, g, h, i, j, k, l, m) -> Bool #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j, ToJSON k, ToJSON l, ToJSON m, ToJSON n) => ToJSON (a, b, c, d, e, f, g, h, i, j, k, l, m, n) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i, j, k, l, m, n)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i, j, k, l, m, n)] -> Encoding #

omitField :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n) -> Bool #

(ToJSON a, ToJSON b, ToJSON c, ToJSON d, ToJSON e, ToJSON f, ToJSON g, ToJSON h, ToJSON i, ToJSON j, ToJSON k, ToJSON l, ToJSON m, ToJSON n, ToJSON o) => ToJSON (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

toJSON :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) -> Value #

toEncoding :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) -> Encoding #

toJSONList :: [(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)] -> Value #

toEncodingList :: [(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)] -> Encoding #

omitField :: (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) -> Bool #

data Value #

A JSON value represented as a Haskell value.

Instances

Instances details
Arbitrary Value #

Since: aeson-2.0.3.0

Instance details

Defined in Data.Aeson.Types.Internal

Methods

arbitrary :: Gen Value #

shrink :: Value -> [Value] #

CoArbitrary Value #

Since: aeson-2.0.3.0

Instance details

Defined in Data.Aeson.Types.Internal

Methods

coarbitrary :: Value -> Gen b -> Gen b #

Function Value #

Since: aeson-2.0.3.0

Instance details

Defined in Data.Aeson.Types.Internal

Methods

function :: (Value -> b) -> Value :-> b #

FromJSON Value # 
Instance details

Defined in Data.Aeson.Types.FromJSON

ToJSON Value # 
Instance details

Defined in Data.Aeson.Types.ToJSON

NFData Value # 
Instance details

Defined in Data.Aeson.Types.Internal

Methods

rnf :: Value -> () #

Data Value # 
Instance details

Defined in Data.Aeson.Types.Internal

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> Value -> c Value #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c Value #

toConstr :: Value -> Constr #

dataTypeOf :: Value -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c Value) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c Value) #

gmapT :: (forall b. Data b => b -> b) -> Value -> Value #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> Value -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> Value -> r #

gmapQ :: (forall d. Data d => d -> u) -> Value -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> Value -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> Value -> m Value #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> Value -> m Value #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> Value -> m Value #

IsString Value # 
Instance details

Defined in Data.Aeson.Types.Internal

Methods

fromString :: String -> Value #

Generic Value # 
Instance details

Defined in Data.Aeson.Types.Internal

Associated Types

type Rep Value 
Instance details

Defined in Data.Aeson.Types.Internal

Methods

from :: Value -> Rep Value x #

to :: Rep Value x -> Value #

Read Value # 
Instance details

Defined in Data.Aeson.Types.Internal

Show Value #

Since version 1.5.6.0 version object values are printed in lexicographic key order

>>> toJSON $ H.fromList [("a", True), ("z", False)]
Object (fromList [("a",Bool True),("z",Bool False)])
>>> toJSON $ H.fromList [("z", False), ("a", True)]
Object (fromList [("a",Bool True),("z",Bool False)])
Instance details

Defined in Data.Aeson.Types.Internal

Methods

showsPrec :: Int -> Value -> ShowS #

show :: Value -> String #

showList :: [Value] -> ShowS #

Eq Value # 
Instance details

Defined in Data.Aeson.Types.Internal

Methods

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

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

Ord Value #

The ordering is total, consistent with Eq instance. However, nothing else about the ordering is specified, and it may change from environment to environment and version to version of either this package or its dependencies (hashable and 'unordered-containers').

Since: aeson-1.5.2.0

Instance details

Defined in Data.Aeson.Types.Internal

Methods

compare :: Value -> Value -> Ordering #

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

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

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

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

max :: Value -> Value -> Value #

min :: Value -> Value -> Value #

Hashable Value # 
Instance details

Defined in Data.Aeson.Types.Internal

Methods

hashWithSalt :: Int -> Value -> Int #

hash :: Value -> Int #

KeyValue Encoding Series # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

(.=) :: ToJSON v => Key -> v -> Series #

explicitToField :: (v -> Encoding) -> Key -> v -> Series #

KeyValueOmit Encoding Series # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

(.?=) :: ToJSON v => Key -> v -> Series #

explicitToFieldOmit :: (v -> Bool) -> (v -> Encoding) -> Key -> v -> Series #

Lift Value #

Since: aeson-0.11.0.0

Instance details

Defined in Data.Aeson.Types.Internal

Methods

lift :: Quote m => Value -> m Exp #

liftTyped :: forall (m :: Type -> Type). Quote m => Value -> Code m Value #

(GToJSON' Encoding arity a, ConsToJSON Encoding arity a, Constructor c) => SumToJSON' TwoElemArray Encoding arity (C1 c a) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

sumToJSON' :: Options -> ToArgs Encoding arity a0 -> C1 c a a0 -> Tagged TwoElemArray Encoding

(GToJSON' Value arity a, ConsToJSON Value arity a, Constructor c) => SumToJSON' TwoElemArray Value arity (C1 c a) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

sumToJSON' :: Options -> ToArgs Value arity a0 -> C1 c a a0 -> Tagged TwoElemArray Value

GToJSON' Encoding arity (U1 :: Type -> Type) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Encoding arity a -> U1 a -> Encoding

GToJSON' Encoding arity (V1 :: Type -> Type) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Encoding arity a -> V1 a -> Encoding

GToJSON' Value arity (U1 :: Type -> Type) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Value arity a -> U1 a -> Value

GToJSON' Value arity (V1 :: Type -> Type) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Value arity a -> V1 a -> Value

ToJSON1 f => GToJSON' Encoding One (Rec1 f) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Encoding One a -> Rec1 f a -> Encoding

ToJSON1 f => GToJSON' Value One (Rec1 f) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Value One a -> Rec1 f a -> Value

(EncodeProduct arity a, EncodeProduct arity b) => GToJSON' Encoding arity (a :*: b) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Encoding arity a0 -> (a :*: b) a0 -> Encoding

ToJSON a => GToJSON' Encoding arity (K1 i a :: Type -> Type) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Encoding arity a0 -> K1 i a a0 -> Encoding

(WriteProduct arity a, WriteProduct arity b, ProductSize a, ProductSize b) => GToJSON' Value arity (a :*: b) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Value arity a0 -> (a :*: b) a0 -> Value

ToJSON a => GToJSON' Value arity (K1 i a :: Type -> Type) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Value arity a0 -> K1 i a a0 -> Value

(ToJSON1 f, GToJSON' Encoding One g) => GToJSON' Encoding One (f :.: g) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Encoding One a -> (f :.: g) a -> Encoding

(ToJSON1 f, GToJSON' Value One g) => GToJSON' Value One (f :.: g) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

gToJSON :: Options -> ToArgs Value One a -> (f :.: g) a -> Value

FromPairs Value (DList Pair) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

fromPairs :: DList Pair -> Value

value ~ Value => KeyValue Value (KeyMap value) #

Constructs a singleton KeyMap. For calling functions that demand an Object for constructing objects. To be used in conjunction with mconcat. Prefer to use object where possible.

Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

(.=) :: ToJSON v => Key -> v -> KeyMap value #

explicitToField :: (v -> Value) -> Key -> v -> KeyMap value #

value ~ Value => KeyValueOmit Value (KeyMap value) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

(.?=) :: ToJSON v => Key -> v -> KeyMap value #

explicitToFieldOmit :: (v -> Bool) -> (v -> Value) -> Key -> v -> KeyMap value #

v ~ Value => KeyValuePair v (DList Pair) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

pair :: Key -> v -> DList Pair

(key ~ Key, value ~ Value) => KeyValue Value (key, value) # 
Instance details

Defined in Data.Aeson.Types.ToJSON

Methods

(.=) :: ToJSON v => Key -> v -> (key, value) #

explicitToField :: (v -> Value) -> Key -> v -> (key, value) #

type Rep Value # 
Instance details

Defined in Data.Aeson.Types.Internal

encode :: ToJSON a => a -> ByteString #

Efficiently serialize a JSON value as a lazy ByteString.

This is implemented in terms of the ToJSON class's toEncoding method.

object :: [Pair] -> Value #

Create a Value from a list of name/value Pairs. If duplicate keys arise, later keys and their associated values win.

withObject :: String -> (Object -> Parser a) -> Value -> Parser a #

withObject name f value applies f to the Object when value is an Object and fails otherwise.

Error message example

withObject "MyType" f (String "oops")
-- Error: "parsing MyType failed, expected Object, but encountered String"

withText :: String -> (Text -> Parser a) -> Value -> Parser a #

withText name f value applies f to the Text when value is a String and fails otherwise.

Error message example

withText "MyType" f Null
-- Error: "parsing MyType failed, expected String, but encountered Null"