在 Play Framework 2.1.3 中,我正在尝试编写可与以下类一起使用的 json 序列化:
import play.api.libs.json._
import play.api.libs.functional._
trait Task
case class TaskA(id: Int, options: String) extends Task
case class TaskB(id: Int, name: String, options: String) extends Task
case class TaskC(id: Int, mapping: Map[String, Int], options: String) extends Task
case class TasksQueue(qid: Int, queue: List[Task])
当然,我可以轻松地为扩展的单个案例类创建序列化,Task
例如 withimplicit val fmt = Json.format[TaskA]
等,但我不知道如何为TasksQueue
.
困难的部分是我希望能够将不同类型的任务queue
置于TasksQueue
. 有什么方法可以向 Task 添加类型参数,这不会限制我放在该列表中的任务类型?