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

时间:2016-05-23 16:04:14

标签: elm

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

虽然响应代码是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

EDIT1:

这是一个POST操作,因此我无法使用getString

2 个答案:

答案 0 :(得分:3)

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

如果您需要使用Http.send,那么您可以执行以下操作:

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

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

type Msg =
  ...
  DeleteUserSuccess

答案 1 :(得分:0)

看起来你永远不会回复Json的回复,所以你可能会更好地使用Http.getString

type Result = FetchFail Error
            | DeleteUserSuccess

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

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