I have this:
data Data1 = Data1 { field1 :: Int, field2 :: Int }
data DataMain = DataMain
{ a :: String
, b :: Bool
, subData :: Data1
}
And JSON
{
a: 'some value',
b: 'some value2',
c: 'some value3',
d: 'some value4',
}
And here are the
instance ToJSON DataMain where
toJSON (DataMain a b subData) =
object ["a" .= a
, "b" .= b
, "c" .= (field1 subData)
, "d" .= (field2 subData)
]
How can I do the same thing vise versa?
instance FromJSON DataMain where
parseJSON (Object v) =
DataMain <$> v .: "a"
<*> v .: "b"
<*> v .: ?????
parseJSON _ = mzero