2015-09-07 8 views
5

Ecco il mio decoder:Come convertire da stringa a Int in Json.Decoder

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

Il id dovrebbe logicamente essere Int comunque la mia backend invia come String (ad esempio, otteniamo "1" invece di 1).

Come posso trasmettere il valore decodificato a Int?

risposta

6

... e per rispondere a me stesso :) Ho trovato la soluzione in questo Flickr esempio

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)