我刚刚开始与Elm合作,使用我正在开发的Rest API进行一些前端原型设计。一般来说,API返回可以解码的“合理”数据结构,因为密钥和值类型是众所周知的,但是一些资源类型返回只有原始json没有预定结构的data
条目。Elm解码未知的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中,你总是期望一个对象包含某些属性,而且Elm甚至会在运行时检查该对象是否存在所期望的所有属性。 –