{-# LANGUAGE DataKinds #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE TemplateHaskell #-} {-# LANGUAGE FlexibleContexts #-} -- | This module contains helper functions to work with JSON module Web.Telegram.API.Bot.JsonExt ( toJsonDrop, parseJsonDrop ) where import Data.Aeson import Data.Aeson.Types import GHC.Generics import GHC.TypeLits -- | Method used to drop prefix from field name during serialization toJsonDrop prefix = genericToJSON defaultOptions { fieldLabelModifier = drop prefix , omitNothingFields = True } -- | Method used to drop prefix from field name during deserialization parseJsonDrop prefix = genericParseJSON defaultOptions { fieldLabelModifier = drop prefix }