18 lines
556 B
Haskell
18 lines
556 B
Haskell
{-# LANGUAGE DeriveGeneric, OverloadedStrings #-}
|
|
import Data.Aeson
|
|
import GHC.Generics
|
|
|
|
data Person = Person { firstName :: String
|
|
, lastName :: String
|
|
, age :: Maybe Int
|
|
} deriving (Show, Eq, Generic)
|
|
|
|
instance FromJSON Person
|
|
instance ToJSON Person
|
|
|
|
main = do
|
|
let test1 = "{\"firstName\":\"Bob\", \"lastName\":\"Smith\"}"
|
|
test2 = "{\"firstName\":\"Miles\", \"lastName\":\"Davis\", \"age\": 45}"
|
|
print (decode test1 :: Maybe Person)
|
|
print (decode test2 :: Maybe Person)
|