Elm:将带有单个元素的JSON数组解码为字符串

m4v*_*v15 3 frontend json decoder elm

看了这样的东西,但找不到确切的问题.

我从服务器端验证返回JSON,如下所示:

{ 
  "field": ["field-name"], 
  "messages":["message","message"]
}
Run Code Online (Sandbox Code Playgroud)

我想做的是将其解码为榆树记录

{ field: String, messages: List String }
Run Code Online (Sandbox Code Playgroud)

但是,我遇到了错误的字段字段问题.我无法将单个元素JSON数组转换为该元素的字符串.

甚至可以使用Decode,或者我更好地将其解码为List,然后从列表中抓取头部.

这就是我对解码的看法:

valErrorDecoder : Decode.Decoder ValError
valErrorDecoder =
decode ValError
    |> required "field" (Decode.list Decode.string)
    |> required "messages" (Decode.list Decode.string)
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助!

Jos*_*ens 10

试试Decode.index,应该做的伎俩.

valErrorDecoder : Decode.Decoder ValError
valErrorDecoder =
decode ValError
    |> required "field" (Decode.index 0 Decode.string)
    |> required "messages" (Decode.list Decode.string)
Run Code Online (Sandbox Code Playgroud)