ci sono due classi Foo
e Bar
. Foo
contiene un campo di Bar
. La domanda è: come posso implementare un jono implicito Writes
per la classe ?Come implementare le scritture JSON implicite dell'oggetto incorporato in Play Framework 2.x
Ecco il codice:
package models
import play.api.libs.json._
case class Foo(id: String, bar: Bar)
object Foo {
implicit val implicitFooWrites = new Writes[Foo] {
def writes(foo: Foo): JsValue = {
Json.obj(
"id" -> foo.id,
"bar" -> foo.bar
)
}
}
}
case class Bar(x: String, y: Int)
object Bar {
implicit val implicitBarWrites = new Writes[Bar] {
def writes(bar: Bar): JsValue = {
Json.obj(
"x" -> bar.x,
"y" -> bar.y
)
}
}
}
Quando provo a compilare, ottengo il seguente errore:
No Json deserializer found for type models.Bar. Try to implement an implicit Writes or Format for this type.
Non capisco questo errore di compilazione, da quando ho implementato un implicito Scrive per modelli. Classe. Qual è il problema qui?
Nizza. Molte grazie. Basta dichiarare la classe "Bar" prima che la classe "Foo" risolva il problema. E grazie per il suggerimento con le nuove funzionalità di JSON di Play2.1. Questo riduce veramente il numero di righe da scrivere. – schub
Sto cercando di capire come utilizzare mongodb reattivo seguendo il loro esempio e non si compila. Dopo aver letto questo post, sono stato in grado di modificare l'esistente e farlo pubblicare un utente. Sto usando 2.4 ora. Ci sono altre scorciatoie o modifiche che ora esistono in 2.4? – pitchblack408