-- | The casing utilities allow you to specify how Aeson renders and parses -- the field names in JSON messages. Snake, Camel, and Pascal case are all -- supported. To include casing modifiers in Aeson, attach options to instances -- of ToJSON and FromJSON. -- -- > data Person = Person -- > { personFirstName :: Text -- > , personLastName :: Text -- > } deriving (Generic) -- > -- > instance ToJSON Person where -- > toJSON = genericToJSON $ aesonPrefix snakeCase -- > instance FromJSON Person where -- > parseJSON = genericParseJSON $ aesonPrefix snakeCase -- -- The above code will produce JSON messages like the following... -- -- > { -- > "first_name": "John", -- > "last_name": "Doe" -- > } module Data.Aeson.Casing ( aesonDrop , aesonPrefix , snakeCase , camelCase , pascalCase ) where import Data.Aeson.Casing.Internal