Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…
Cannot retrieve contributors at this time
31 lines (22 sloc) 1005 Bytes
-- This example is basically the same as in Simplest.hs, only it uses
-- SYB generics instead of explicit instances of ToJSON and FromJSON.
-- This mechanism is much slower than the newer generics mechanism
-- demonstrated in Generic.hs, but it works on versions of GHC older
-- than 7.2.
-- We enable the DeriveDataTypeable language extension so that GHC can
-- automatically derive the Typeable and Data classes for us.
{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE OverloadedStrings #-}
import Data.Data (Typeable, Data)
import Data.Aeson.Generic (decode, encode)
import qualified Data.ByteString.Lazy.Char8 as BL
-- To decode or encode a value using the generic machinery, we must
-- make the type an instance of the Typeable and Data classes.
data Coord = Coord { x :: Double, y :: Double }
deriving (Show, Typeable, Data)
main :: IO ()
main = do
let req = decode "{\"x\":3.0,\"y\":-1.0}" :: Maybe Coord
print req
let reply = Coord 123.4 20
BL.putStrLn (encode reply)
Jump to Line
Something went wrong with that request. Please try again.