2015-09-07 6 views
5

Hier ist mein Decoder:Wie aus String konvertieren Int in Json.Decoder

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

Die id logisch Int sollte jedoch mein Backend sendet es als String (z wir "1" statt 1 bekommen).

Wie kann ich den dekodierten Wert in Int umwandeln?

Antwort

6

... und mich zu beantworten :) ich die Lösung in diesem Flickr Beispiel

gefunden
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)