Oda*_*ick 4 floating-point json elm
我需要使用一个将floats表示为strings*的 json 源,但我不知道如何使用。
这几乎很容易:
Json.Decode.map String.toFloat Json.Decode.string
Run Code Online (Sandbox Code Playgroud)
但是,这会产生 aMaybe Float并且如果它无法解码字符串,我希望它完全失败。
(*) 这样做的原因是真正的数据类型是十进制,所以 "1.5" != "1.50"。不过,我的应用程序不必关心。
您可以安装elm-community/json-extra和使用Json.Decode.Extra.parseFloat
或者只是复制它的实现
fromMaybe : String -> Maybe a -> Decode.Decoder a
fromMaybe error val =
case val of
Just v ->
Decode.succeed v
Nothing ->
Decode.fail error
parseFloat : Decode.Decoder Float
parseFloat =
Decode.string |> Decode.andThen (String.toFloat >> fromMaybe "failed to parse as float")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |