2016-05-16 15 views
0

Ich erhalte diese Json Zeichenfolge von einem Web-api:Wie erstellt man eine Fallklasse für diese json-Eingabe und konvertiert sie in ein Objekt?

{"results":{"Inne":"23.3","Ute":"5.8"}} 

Wie kann ich einen Fall, Klasse konstruieren diese Ausgabe entsprechen?


Dies ist mein Versuch:

case class Results(Inne: String, Ute: String) 

object MyJsonProtocol extends DefaultJsonProtocol { 
    implicit val tempsFormat = jsonFormat2(Results) 
} 

Ich versuche, mit val temps = jsonin.convertTo [Ergebnisse] zu konvertieren und offensichtlich funktioniert das nicht, da es nur zwei Werte erwartet.

Antwort

1
case class Results(Inne: String, Ute: String) 
case class Result(results: Results) 
object MyJsonProtocol extends DefaultJsonProtocol { 
    implicit val tempsFormat = jsonFormat2(Results) 
    implicit val resultsFormat = jsonFormat1(Results) 
} 

Oder können Sie Linsen verwenden https://github.com/jrudolph/json-lenses

case class Results(Inne: String, Ute: String) 
object MyJsonProtocol extends DefaultJsonProtocol { 
    implicit val tempsFormat = jsonFormat2(Results) 
    implicit val resultsFormat = jsonFormat1(Results) 
} 

jsonin.extract[Results]('results) 
+1

Ich denke, das implizite val resultsFormat = jsonFormat1 (Ergebnisse) sein sollte: implizite val resultsFormat = jsonFormat1 (Ergebnis)? –

+0

Objektive ist wirklich nett! Problem gelöst! Vielen Dank für Ihre Hilfe @Falmarri. –