【发布时间】:2018-09-07 08:40:03
【问题描述】:
我正在尝试解析递归 JSON 数据,如下所示:
{
"node": "a",
"children": [
{
"node": "b",
"children": [
{
"node": "c",
"children": null
}
]
},
{
"node": "d",
"children": null
}
]
}
现在我想实现一个 FromJSON 的实例,这样我就可以将它解码成这样的数据结构: 以下数据结构
data Tree = Node { value :: Text, children :: [Tree]} | Nothing
我不知道该怎么做。我只看到了有关如何使用 Aeson 为平面(非递归)JSON 结构派生实例的示例。
【问题讨论】:
-
这里的问题更多的是你使用
null而不是一个空列表。此外,为什么要在这里创建构造函数Nothing?如果没有null的情况,这实际上与非平面数据完全相同。 -
你是对的。如果你只是使用空列表来表示没有孩子,那真的很简单!
-
那么...问题解决了吗?
-
@lsund 手动 define custom
FromJSON/ToJSON实例应该很简单。你需要帮助吗? (如果不是,您也可以回答自己的问题,我们鼓励这样做!) -
我回答了我自己的问题。谢谢大家