Elm Language
Benutzerdefinierte JSON-Decoder
Suche…
Einführung
Verwendung von Json.Decode zum Erstellen von benutzerdefinierten Decodern, z. B. Decodierung in Unionstypen und benutzerdefinierte Datentypen
Dekodierung in Unionstyp
import Json.Decode as JD
import Json.Decode.Pipeline as JP
type PostType = Image | Video
type alias Post = {
id: Int
, postType: PostType
}
-- assuming server will send int value of 0 for Image or 1 for Video
decodePostType: JD.Decoder PostType
decodePostType =
JD.int |> JD.andThen (\postTypeInt ->
case postTypeInt of
0 ->
JD.succeed Image
1 ->
JD.succed Video
_ ->
JD.fail "invalid posttype"
)
decodePostMap : JD.Decoder Post
decodePostMap =
JD.map2 Post
(JD.field "id" JD.int)
(JD.field "postType" decodePostType)
decodePostPipline : JD.Decoder Post
decodePostPipline =
JP.decode Post
|> JP.required "id" JD.int
|> JP.required "postType" decodePostType
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow