Elm,JSON解码器:如何解码空字符串?
处理空(完全没有字符串)响应的最佳方法是什么 尽管响应代码是200,但Elm返回一个错误,因为空响应不是有效的JSON 这是我目前的代码:Elm,JSON解码器:如何解码空字符串?,elm,Elm,处理空(完全没有字符串)响应的最佳方法是什么 尽管响应代码是200,但Elm返回一个错误,因为空响应不是有效的JSON 这是我目前的代码: decodeAlwaysTrue : Json.Decode.Decoder Bool decodeAlwaysTrue = Json.Decode.succeed True Http.send Http.defaultSettings httpConfig |> Http.fromJson decodeAlwaysTrue |>
decodeAlwaysTrue : Json.Decode.Decoder Bool
decodeAlwaysTrue =
Json.Decode.succeed True
Http.send Http.defaultSettings httpConfig
|> Http.fromJson decodeAlwaysTrue
|> Task.perform FetchFail DeleteUserSuccess
编辑1:
这是一个POST操作,因此我无法使用。您可以使用Http
模块中的函数。这将返回HTTP请求返回的任何字符串,而不尝试将is转换为Json值
如果您需要使用Http.send
,则可以执行以下操作:
Http.send Http.defaultSettings httpConfig
|>Task.perform FetchFail(始终删除用户成功)
这假定DeleteUserSuccess
已更改为不使用类型参数定义:
type Msg=
...
删除用户成功
看起来您永远不会得到Json响应,因此使用
由于成功获取不包含任何信息,因此您可以忽略它并返回
DeleteUserSuccess
,而不考虑字符串的内容。我喜欢您当前的方法Success
说:“不管你在这里得到什么,都很好。”@sørendbois并不完全正确。如果响应代码为2xx,并且响应是有效的JSON,那么它将成功。请参阅我的初始问题中的EDIT1
type Result = FetchFail Error
| DeleteUserSuccess
Http.getString address
|> Task.perform FetchFail (\s -> DeleteUserSuccess)