最近我尝试使用 Elm 的 Http 模块从服务器获取数据,但在将 JSON 解码为自定义类型时遇到了困难。
我的 JSON 如下所示:
[{
"id": 1,
"name": "John",
"address": {
"city": "London",
"street": "A Street",
"id": 1
}
},
{
"id": 2,
"name": "Bob",
"address": {
"city": "New York",
"street": "Another Street",
"id": 1
}
}]
应该被解码为:
type alias Person =
{
id : Int,
name: String,
address: Address
}
type alias Address =
{
id: Int,
city: String,
street: String
}
目前我发现需要编写一个解码函数:
personDecoder: Decoder Person
personDecoder =
object2 Person
("id" := int)
("name" := string)
那么针对前两个属性,我该如何整合嵌套的地址属性并将其与列表解码组合在一起呢?
Task.perform
和Http.get
中使用它?当使用Http.get
时,我遇到了类型错误,它说它不能与Decoder (List a)
一起使用,只能与Decoder a
一起使用。 - user9903Msg
中可能存在不匹配的类型参数)- 但如果这不是问题所在,你最好打开一个新的问题或在 Slack 频道中提问。 - Chad Gilbert