榆树:如何使用Json

Elm: How to use Json

我不知道怎么用Json.decode。

type alias Test =
    { a : Int
    , b : Int
    }

testDecoder =
    object2 Test
        ("a" := int)
        ("b" := int)

main : Html
main =
    let
        t = "{\"a\":2, \"b\":2}"
        d = decodeString testDecoder t
    in
        p [] [ text <| toString <| d ]

我想获取 "a" 的值。

我不知道"Ok { a = 2, b = 2 }"。

decodeString : Decoder a -> String -> Result String a

因为decodeStringreturns一个Result String a,结果可能是错误也可能是成功。你必须做一个 case 语句并寻找 OkErr,像这样:

main : Html
main =
    let
        t = "{\"a\":2, \"b\":2}"
        d = decodeString testDecoder t
        myText =
            case d of
                Ok x -> toString x.a
                Err msg -> msg
in
    p [] [ text myText ]