我有一个复杂的JSON文件,我想从中提取出单个值。我可以定义所有的struct
并在它们上面派生Deserialize
,但我只想写一点手动代码来获取那个值。老实说,Serde文档让我感到困惑。
我的JSON内容具有以下布局:
{
"data": [
{
"hostname": "a hostname"
}
]
}
我正在寻找进入 data
,然后获取数组的第一个元素,并获取 hostname
的值所导航到的价值。
在Haskell中,我会这样做:
newtype Host = Host Text
instance FromJSON Host where
parseJSON (Object o) = (return . Host) <=< (.: "hostname") <=< (fmap (!! 0) . parseJSON) <=< (.: "data") $ o
parseJSON _ = mzero
Serde有什么相应的东西吗?