【发布时间】:2017-04-11 01:33:42
【问题描述】:
我刚刚开始与 Elm 合作,使用我正在开发的 Rest API 进行一些前端原型设计。通常,API 返回可以解码的“合理”数据结构,因为键和值类型是众所周知的,但有几种资源类型会返回一个 data 条目,该条目仅包含没有预定结构的原始 json。
到目前为止,我所阅读的所有内容似乎都假设您知道要解码的数据的结构,而在纯 js 中,循环遍历键并反映类型以确定它们应该如何是相对容易的在运行时处理。我还没有看到在 Elm 中处理此类数据的明确路径。
例如,
{
"name":"foo",
"data": {
"bar": [{"baz":123}, "quux"]
},
...
}
我想知道目前是否可以使用类似的东西解析data 条目的值
function go(obj)
for key in keys(foo)
if foo[key] is an object
go(foo[k])
else if foo[key] is an array
map(go, foo[k])
...
具体来说:
- 目前是否可以在 Elm 中处理未知、可能深度嵌套和异构的 json 数据?
- 如果是这样,您能否告诉我作者打算如何解码此类数据的关键概念或高级直觉?
【问题讨论】:
-
接收一个你不知道的结构恐怕不是“榆树式”。在 Elm 中,您总是希望一个对象包含某些属性,Elm 甚至会在运行时检查您期望的所有属性是否存在于该对象中。