在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
的个别案例类创建序列化,例如使用implicit val fmt = Json.format[TaskA]
等但我不知道如何为TasksQueue
实现此功能。
困难的部分是我希望能够在queue
TasksQueue
的{{1}}值中添加不同类型的任务。有没有办法向Task添加类型参数,这不会限制我放在该列表中的任务类型?