First time aeson user. The magic part is ToJSON/FromJSON instance. Knowing how generics works in Haskell, one could intuitively expect empty ToJSON and FromJSON instance to work as is (no need to write any specialization to serialize/de-serialize ADT) and that will be the discipline I would choose when define APIs.
{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE DeriveGeneric #-}
import qualified Data.ByteString.Lazy as L
import qualified Data.Text as Text
import Data.Text(Text)
import Data.Aeson
import GHC.Generics
data Patient = Patient {
firstName :: Text
, lastName :: Text
, emailAddress :: Text
, birthDate :: Text
, latestBloodPressureDate :: Text
, systolic :: Int
, diastolic :: Int
} deriving (Generic, Show)
instance ToJSON Patient where
instance FromJSON Patient where
patients :: L.ByteString -> Maybe [Patient]
patients = decode
main = L.getContents >>= print . patients
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment