使用 JSON 组合器时,可以使用文档lazyWrite
中所述的方法创建递归结构:
implicit lazy val userWrites: Writes[User] = (
(__ \ "name").write[String] and
(__ \ "friends").lazyWrite(Writes.seq[User](userWrites))
)(unlift(User.unapply))
在实现写入时是否可以这样做,即:
implicit lazy val userWrites: Writes[User] = new Writes[User]{
def writes(user: User) = Json.obj(
"name" -> user.name,
"friends" -> ??????
)
}