【发布时间】:2017-01-25 21:52:54
【问题描述】:
我有一个包含多个可以嵌套的 cmets 的 json 数组。
示例:
[
{
"author": "john",
"comment" : ".....",
"reply": "",
},
{
"author": "Paul",
"comment" : ".....",
"reply": [
{
"author": "john",
"comment" : "nested comment",
"reply": [
{
"author": "Paul",
"comment": "second nested comment"
}
]
},
{
"author": "john",
"comment" : "another nested comment",
"reply": ""
}
]
},
{
"author": "Dave",
"comment" : ".....",
"reply": ""
},
]
所以它是一个评论列表,每个评论都可以有一个回复,回复的数量是无限的。
使用Json.Decode.list我可以解码第一级评论,但是如何检查是否有回复然后再次解析?
这是我尝试做的简化版本。我实际上是在尝试解码 reddit cmets。 exemple
【问题讨论】:
-
你不想有一个“再次”解析的心理模型。您想为同一字段使用中间值或不同的解码器。看看package.elm-lang.org/packages/elm-lang/core/latest/…。它允许根据已解码的数据切换子解码器。还有
oneOf,允许您解析空字符串(您可以手动将其转换为空的回复列表)或嵌套回复。
标签: json parsing decode elm reddit