如何在Json.Decoder中从String转换为Int

ami*_*ibu 7 json elm

这是我的解码器:

decodeData : Json.Decoder (Id, String)
decodeData =
  Json.at ["data", "0"]
    <| Json.object2 (,)
      ("id" := Json.int)
      ("label" := Json.string)
Run Code Online (Sandbox Code Playgroud)

id逻辑上应Int但是我的后端将其作为String(如我们得到"1"的不是1).

如何将解码后的值转换为Int

ami*_*ibu 7

...并回答自己:)我在这个Flickr示例中找到了解决方案

decodeData : Json.Decoder (Id, String)
decodeData =
  let number =
    Json.oneOf [ Json.int, Json.customDecoder Json.string String.toInt ]
  in
    Json.at ["data", "0"]
      <| Json.object2 (,)
        ("id" := number)
        ("label" := Json.string)
Run Code Online (Sandbox Code Playgroud)