假设我有两个案例类:Child
,Parent
看起来像:
case class Child()
case class Parent(child: Child)
假设我已经实现了Writes[Child]
. 我想实施Writes[Parent]
.
我可以使用组合器来做到这一点:
implicit val parentWrites: Writes[Parent] = (
(__ \ "child").write[Child]
)(unlift(Parent.unapply))
但是使用以下方法,编译器抱怨它Child
在期待 a 时看到了类型JsValueWrapper
:
implicit val parentWrites = new Writes[Parent] {
def writes(parent: Parent) = Json.obj(
"child" -> parent.child
)
}
希望有人可以帮助我了解如何在Writes[Parent]
不使用组合器的情况下实现 a 。