Je veux définir la structure référencée circulaire JSON avec spray-json, alors j'essaie de définir comme ci-dessous.
final case class A(b: B)
final case class B(a: A)
trait AProtocol extends DefaultJsonProtocol {
implicit val aProtocol: RootJsonFormat[A] = rootFormat(lazyFormat(jsonFormat1(A)))
}
Mais j'ai une erreur qui est
<console>:18: error: could not find implicit value for evidence parameter of type MyProtocol.this.JF[B]
implicit val aProtocol: RootJsonFormat[A] = rootFormat(lazyFormat(jsonFormat1(A)))
S'il vous plaît donnez-moi des conseils.
Réponses:
0 pour la réponse № 1Eh bien, vous avez jsonFormat pour A mais avec B. Vous utilisez bien lazyFormat mais vous avez complètement oublié les autres dépendances. Essaye ça:
final case class A(b: B)
final case class B(a: A)
trait AProtocol extends DefaultJsonProtocol {
implicit val aProtocol: RootJsonFormat[A] = rootFormat(lazyFormat(jsonFormat1(A)))
implicit val bProtocol: RootJsonFormat[B] = rootFormat(lazyFormat(jsonFormat1(B)))
}