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 |>

处理空(完全没有字符串)响应的最佳方法是什么

尽管响应代码是200,但Elm返回一个错误,因为空响应不是有效的JSON

这是我目前的代码:

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)