2017-07-03 38 views
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] 
} 

回答

1

你申报ProcessStepTemplatesModel一个隐含的格式?

+0

为什么我还需要一个模型以及它应该是什么样子? 添加了以上模型 – Felix

+0

在能够序列化您的集合之前,您需要为每个声明的类声明至少一个格式[X]。每次PlayJson遇到未知类型(即不是像String,Long,Date等基本类型的类型)时,它都会搜索隐式格式以序列化/反序列化它。您也可以通过Reads [X]或Writes [X],具体取决于您尝试执行的操作。 在你的例子中,它会问你一个隐含的格式:ProcessStepTemplatesDerivedProcessesModel,ProcessStepPrerequisitesModel,ProcessStepPostconditionModel, ProcessStepsTemplates_ProcessTemplatesModel –