2015-09-07 15 views
5

Oto mój dekoder:Jak przekonwertować z ciągu znaków do int w Json.Decoder

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

id logicznie powinien być Int jednak moja backend wysyła go jako String (np otrzymujemy "1" zamiast 1).

Jak mogę odrzucić dekodowaną wartość do Int?

Odpowiedz

6

... i odpowiedzieć sobie :) Znalazłem rozwiązanie w tej Flickr przykład

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) 
Powiązane problemy