自定义spray-json RootJsonFormat或JsonFormat,具体取决于JSON对象中的值

时间:2017-05-11 18:46:14

标签: json scala akka akka-stream spray-json

在Akka流连接中,我收到如下所示的JSON对象:

{"op":"connection"...}
{"op":"status"...}
..etc

我有以下课程设置:

case class ResponseMessage(
  op: Option[OpType],
)

case class ConnectionMessage(
  a: Option[Int],
  b: Option[Int],
) extends ResponseMessage

case class StatusMessage(
  c: Option[Int],
  d: Option[Int],
) extends ResponseMessage

type OpTypes = OpTypes.Value
object OpTypes extends Enumeration {
  val Connection = Value("connection")
  val Status = Value("status")
  

如何编写自定义JsonFormat实例,以便依赖于   值op我创建了正确的类型?   所以它可以这样使用:

> jsValue.convertTo[ResponseMessage] And the outvalue will be either
> ConnectionMessage or StatusMessage?

0 个答案:

没有答案