gpt4 book ai didi

haskell - Haskell 中的 From 和 ToJSON - 嵌套数据

转载 作者:行者123 更新时间:2023-12-02 16:37:48 25 4
gpt4 key购买 nike

我有这个:

data Data1 = Data1 { field1 :: Int, field2 :: Int }
data DataMain = DataMain
{ a :: String
, b :: Bool
, subData :: Data1
}

和 JSON

{
a: 'some value',
b: 'some value2',
c: 'some value3',
d: 'some value4',
}

这是

  instance ToJSON DataMain where
toJSON (DataMain a b subData) =
object ["a" .= a
, "b" .= b
, "c" .= (field1 subData)
, "d" .= (field2 subData)
]

我怎样才能做同样的事情,反之亦然?

instance FromJSON DataMain where
parseJSON (Object v) =
DataMain <$> v .: "a"
<*> v .: "b"
<*> v .: ?????

parseJSON _ = mzero

最佳答案

您可以使用相同的应用符号来解析嵌套值,如下所示:

instance FromJSON DataMain where
parseJSON (Object v) =
DataMain <$> v .: "a"
<*> v .: "b"
<*> (Data1 <$> v .: "c" <*> v .: "d")

parseJSON _ = mzero

关于haskell - Haskell 中的 From 和 ToJSON - 嵌套数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30842330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com