Ich versuche, einige Fallklassen zu serialisiert/deserialisiert zu/von Json ... und ich habe Probleme, wenn sie mit Fallklassen mit nur einem Feld zu tun (ich verwende 2.1 Play):Wie serialisieren/deserialisieren Fallklassen zu/von Json in Play 2.1
import play.api.libs.json._
import play.api.libs.functional.syntax._
case class MyType(type: String)
object MyType {
implicit val myTypeJsonWrite = new Writes[MyType] {
def writes(type: MyType): JsValue = {
Json.obj(
"type" -> MyType.type
)
}
}
implicit val myTypeJsonRead = (
(__ \ 'type).read[String]
)(MyType.apply _)
}
Der obige Code erzeugt immer folgende Fehlermeldung:
[error] /home/j3d/Projects/test/app/models/MyType.scala:34: overloaded method value read with alternatives:
[error] (t: String)play.api.libs.json.Reads[String] <and>
[error] (implicit r: play.api.libs.json.Reads[String])play.api.libs.json.Reads[String]
[error] cannot be applied to (String => models.MyType)
[error] (__ \ 'method).read[String]
[error] ^
ich weiß ... ein Fall-Klasse, die nur eine Zeichenfolge enthält nicht viel Sinn machen ... aber ich muss eine Fallklasse serialisieren/deserialisieren, die der oben beschriebenen sehr ähnlich ist, die von einem externa kommt l Bibliothek.
Irgendeine Idee? Fehle ich etwas? Jede mögliche Hilfe würde sehr geschätzt werden ... Ich bin immer verrückt :-(Danke.
siehe http://stackoverflow.com/a/20130414/1435971 zum Beispiel json zu scala Fallklasse konvertieren – prarthan