【发布时间】:2017-08-23 02:17:46
【问题描述】:
我有一个对应于 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 没有参数,所以无法(反)序列化它:
取消应用对象
GetFoo没有参数。您使用的是空案例类吗?
将虚拟布尔变量注入GetFoo 的构造函数的解决方法,但这是一个杂项。我想让GetFoo (de)serializable 作为一个空的 JSON 对象。我怎样才能做到这一点?
由于 GET 请求不发送数据,如果读取器/写入器正在使用它,最好让其抛出异常,因为该请求不应该被写入或读取,而是由扩展类。
我的设计依赖于扩展MyQueryRequest 的GetX 类和扩展MyImplicitJsonProvider[GetX] 的GetX 伴随对象。
【问题讨论】:
标签: scala serialization case-class play-json