Elm,JSON 解码器:如何解码空字符串?

Elm, JSON decoder: How to decode an empty string?

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

尽管响应代码是 200,但 Elm returns 出错,因为空响应不是有效的 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 操作,所以我不能使用 getString

您可以使用 Http 模块中的 getString 函数。这将使您返回从 HTTP 请求返回的任何字符串,而无需尝试将其转换为 Json 值。

如果您需要使用 Http.send,那么您可以这样做:

Http.send Http.defaultSettings httpConfig
  |> Task.perform FetchFail (always DeleteUserSuccess)

这假设 DeleteUserSuccess 被更改为没有类型参数的定义:

type Msg =
  ...
  DeleteUserSuccess

您似乎永远不会收到 Json 回复,因此使用 Http.getString

可能会更好
type Result = FetchFail Error
            | DeleteUserSuccess

Http.getString address
  |> Task.perform FetchFail (\s -> DeleteUserSuccess)

由于成功获取不包含任何信息,您可以忽略它并且 return DeleteUserSuccess 无论字符串的内容如何。