给定一个 JSON 对象列表,例如:
[{"id":"1", "name":"Jane"},{"id":"2", "name":"Joe"}]
Run Code Online (Sandbox Code Playgroud)
如何Dict String Foo使用idas 键将其解码为 a以及Footype 的记录在{id: String, name: String}哪里?(请注意,该记录还包含 id。)
例如使用以下组合:
Json.Decode.list( https://package.elm-lang.org/packages/elm/json/latest/Json-Decode#listJson.Decode.map2( https://package.elm-lang.org/packages/elm/json/latest/Json-Decode#map2 )Dict.fromList( https://package.elm-lang.org/packages/elm/core/latest/Dict#fromList )Tuple.pair( https://package.elm-lang.org/packages/elm/core/latest/Tuple#pair )
import Dict exposing (Dict)
import Json.Decode as Decode exposing (Decoder)
type alias Foo =
{ id : String, name : String }
fooDecoder : Decoder Foo
fooDecoder =
Decode.map2 Foo (Decode.field "id" Decode.string) (Decode.field "name" Decode.string)
theDecoder : Decoder (Dict String Foo)
theDecoder =
Decode.list (Decode.map2 Tuple.pair (Decode.field "id" Decode.string) fooDecoder)
|> Decode.map Dict.fromList
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
750 次 |
| 最近记录: |