我剛剛開始與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甚至會在運行時檢查該對象是否存在所期望的所有屬性。 –