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