0
我有我想要的做这样的事情斯卡拉Play应用程序:斯卡拉打不出隐格式序列[选项[models.ProcessStepTemplatesModel]可
implicit val ProcessStepsFormat: OFormat[ProcessSteps] = Json.format[ProcessSteps]
case class ProcessSteps(stepsData: Seq[Option[ProcessStepTemplatesModel]])
问题是,我得到这个错误:
No implicit format for Seq[Option[models.ProcessStepTemplatesModel]] available.
如何更改它的工作格式?
感谢所有
UPDATE
case class ProcessStepTemplatesModel(
id: Option[Int],
title: String,
createdat: String,
updatedat: String,
deadline: Option[Date],
comment: Option[String],
stepType: Int,
deleted: Boolean,
processtemplate: Option[Int],
derivedProcesses: Seq[ProcessStepTemplatesDerivedProcessesModel],
prerequisites: Seq[ProcessStepPrerequisitesModel],
postconditions: Seq[ProcessStepPostconditionModel],
addProcessToProcessStepArray: Seq[ProcessStepsTemplates_ProcessTemplatesModel])
object ProcessStepTemplatesModel {
implicit val processStepFormat = Json.format[ProcessStepTemplatesModel]
}
为什么我还需要一个模型以及它应该是什么样子? 添加了以上模型 – Felix
在能够序列化您的集合之前,您需要为每个声明的类声明至少一个格式[X]。每次PlayJson遇到未知类型(即不是像String,Long,Date等基本类型的类型)时,它都会搜索隐式格式以序列化/反序列化它。您也可以通过Reads [X]或Writes [X],具体取决于您尝试执行的操作。 在你的例子中,它会问你一个隐含的格式:ProcessStepTemplatesDerivedProcessesModel,ProcessStepPrerequisitesModel,ProcessStepPostconditionModel, ProcessStepsTemplates_ProcessTemplatesModel –