2017-07-03 42 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 –