Ich habe eine Reihe von json Einstellungen wie so:ein JSON-Array des Objekts in die entsprechenden Fallklasse Parse
[
{
"name": "Company Name",
"key": "company_name",
"default": "Foo"
}, {
"name": "Deposit Weeks",
"key": "deposit_weeks",
"default": 6
}, {
"name": "Is VAT registered",
"key": "vat_registered",
"default": false
}
]
ich dies in eine Seq
von Setting
Objekte analysieren möchten. Ich habe versucht, mein JSON-Format zu definieren, indem ein Merkmal unter Verwendung und Definition der verschiedenen Fallklassen entsprechend den Datentyp im JSON-Objekt:
sealed trait Setting
case class StringSetting(name: String, key: String, default: String) extends Setting
case class IntSetting(name: String, key: String, default: Int) extends Setting
case class BoolSetting(name: String, key: String, default: Boolean) extends Setting
Jetzt versuche ich die json zu analysieren:
val json = Json.parse(jsonStr)
implicit val jsonFormat: Format[Setting] = Json.format[Setting]
val result = Try(json.as[Seq[Setting]])
hier bekomme ich einen Compiler-Fehler:
Error:(19, 61) No unapply or unapplySeq function found implicit val jsonFormat: Format[Setting] = Json.format[Setting]
gibt es eine Möglichkeit um jede Einstellung zu seiner entsprechenden Fallklasse abzubilden?
Mögliche Duplikat [Rausch frei JSON-Format für versiegelte Züge mit Play 2.2 Bibliothek] (http://stackoverflow.com/questions/17021847/noise- free-json-format-for-sealed-traits-mit-play-2-2-library) –