gpt4 book ai didi

elm - 如何在 elm 中显示结果类型的 Html 结果?

转载 作者:行者123 更新时间:2023-12-05 02:19:48 25 4
gpt4 key购买 nike

我已经定义了一个简单的 serverResponse 来模拟来自 api 的响应以在 elm-lang 中解析。

我在从 Result 到显示信息的 HTML 时遇到了问题!

最好的方法是什么?

import String exposing (..)

import String exposing (..)
import List exposing (..)

import Result exposing (map)

import Json.Decode as Json exposing (..)

type alias Team =
{ department : String
, names: List String
}

serverResponse =
"""
[{"department":"product","names":["bob","sally","george"]},{"department":"marketing","names":["billy","diane","anita"]},{"department":"sales","names":["howard","steve","isha"]}]
"""

stringDecoder =
Json.list Json.string

infoDecoder : Json.Decoder Team
infoDecoder =
Json.map2 Team
(Json.field "department" Json.string)
(Json.field "names" stringDecoder)

teamDecoder : Json.Decoder (List Team)
teamDecoder =
Json.list infoDecoder

toList team =
p [] [
team.department
]

transformList teams =
toList teams

main =
Json.decodeString teamDecoder serverResponse
|> toString
|> text

最佳答案

您可以使用case 语句来提取解码结果。这允许您显式处理解码器的成功和失败。

您的 main 函数可以更改为以下内容(请注意,我已经重新定义了 toList,因为您没有返回有效的 Html):

toList : Team -> Html msg
toList team =
p [] [ text team.department ]

main =
case Json.decodeString teamDecoder serverResponse of
Ok teams ->
div [] (List.map toList teams)

Err msg ->
text ("ERROR: " ++ msg)

Result是具有两个构造函数的联合类型:OkErr。您可以阅读 union types in the Elm Guide .

关于elm - 如何在 elm 中显示结果类型的 Html 结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41386502/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com