我有一个对应于 HTTP GET 请求的空案例类:
case class GetFoo() extends MyQueryRequest {
// ...
}
每条消息都有一个伴随对象,描述了它的隐式 JSON 写入器和读取器:
object GetFoo extends MyImplicitJsonProvider[GetFoo] {
implicit val write = Json.writes[GetFoo]
implicit val read = Json.reads[GetFoo]
}
但是,因为GetFoo
不带参数,所以无法(反)序列化它:
Unapply 对象
GetFoo
没有参数。您使用的是空案例类吗?
一种将虚拟布尔变量注入构造函数的解决方法GetFoo
,但这是一个杂项。我想将GetFoo
(反)序列化为空的 JSON 对象。我怎样才能做到这一点?
由于 GET 请求不发送数据,因此如果正在使用读取器/写入器,最好让其抛出异常,因为该请求不需要被写入或读取,但扩展类需要它。
我的设计依赖于GetX
类扩展MyQueryRequest
和GetX
伴随对象扩展MyImplicitJsonProvider[GetX]
。