如何在Elm-core> 5.0.0中的Json.Decoder中从String转换为Int

vit*_*ral 3 json elm

这是这个问题的理想选择,除了榆树从那以后已经改变,所以答案不再有效(特别是不再有Decode.customDecoder对象).

你如何在elm-core> 5.0.0中做同样的事情?

Rya*_*ant 6

一种方法(从Elm 0.18和核心5.0)将是这样的:

stringIntDecoder : Decoder Int
stringIntDecoder =
    Json.Decode.map (\str -> String.toInt (str) |> Result.withDefault 0) Json.Decode.string
Run Code Online (Sandbox Code Playgroud)

String.toInt从标准库函数接受一个字符串,并试图将其转换为整数,返回结果.Result.withDefault做它的名字暗示 - 你给它一些默认值和结果,如果结果是Ok x你得到x但是如果Err _你得到你提供的默认值,这里是0.你可以改为编写一个函数来自己处理一个结果你喜欢并通过该功能.