Was würde ich gerne durch diese inspiriert tun: https://www.playframework.com/documentation/2.5.x/ScalaJsonHttpSlick Ergebnis JSon
Ich möchte Person
haben, die Address
mit ihnen verbunden haben. Es ist viel zu viele tatsächlich in meinem Beispiel, so dass eine Person mehrere Adressen haben kann und eine Adresse an mehrere Personen angehängt werden kann.
Die Abfrage war kein Problem. Ich bekomme zurück: Future[Seq[((Person, PersonAddress), Address)]]
von der DB-Schicht.
Mein Problem beginnt, wenn ich das Ergebnis als json zurückgeben möchte. Für eine Person
allein wäre es einfach, wie die Fallklasse schon vorsorgen würde, aber für eine solche Seq ist es komplizierter.
So habe ich versucht, dies:
1) DB kehrt nur Future[Seq[((Person, PersonAddress)]]
für jetzt, die Dinge einfacher zu machen für mich
2) zu verstehen case class PersonWithPersonAddress(person: Person, personAddress: PersonAddress)
hinzugefügt wurde ein Helfer zu sein, anstatt Tuple2[Person, PersonAddress]
3) ich schrieb den folgenden Verfasser:
implicit val writes: Writes[PersonWithPersonAddress] = (
(JsPath \ "person").write[Person],
(JsPath \ "personAddress").write[PersonAddress]
) (unlift(PersonWithPersonAddress.unapply))
nach dem Compiler dies nicht enou ist gh.
Kein Json Serializer für Typ PersonAddress gefunden. Versuchen Sie ein implizites Schreiben oder Format für diesen Typ zu implementieren.
Dann habe ich versucht, hinzuzufügen: implicit val personFormat = Json.format[Person]
implicit val PersonAddressFormat = Json.format[PersonAddress]
aber ich habe
(play.api.libs.json.OWrites[Person], play.api.libs.json.OWrites[PersonAddress]) does not take parameters
Ich ging von Hand zu meinem Writes[Person]
schreiben, aber dies ist nicht etwas zu Json.format[Person]
natürlich ändern .
Jetzt bin ich aus Ideen
Ah, was ein bisschen ',' anstatt '' '' kann verursachen ... – Sorona