play scala return 两个对象
play scala return two object
有没有办法 return 两种收益?
val process =
for {
processTemplate <- processTemplateDTO.getProcessTemplate(processTemplateId)
processSteps <- processTemplateDTO.getProcessStepTemplates(processTemplateId)
} yield (processTemplate, processSteps)
process.map(p => Ok(Json.toJson(p)))
我收到这个错误:
No Json serializer found for type (Option[models.ProcessTemplatesModel], Seq[models.ProcessStepTemplatesModel]). Try to implement an implicit Writes or Format for this type.
您正在尝试将二元组 (x,y) 写入 json。默认情况下,没有可用于元组的写入,即播放框架不知道如何将其转换为 json.
您可以通过提供写入来解决此问题,例如
implicit val writes = new Writes[(A, B)] {
override def writes(o: (A, B)): JsValue =
Json.obj("field1"-> Json.toJson(o._1), "filed2" -> Json.toJson(o._2))
}
您还需要为 ProcessTemplatesModel
和 ProcessStepTemplatesModel
提供写入实现。您可以在 here.
上阅读有关 Play 框架中 json 支持的更多信息
有没有办法 return 两种收益?
val process =
for {
processTemplate <- processTemplateDTO.getProcessTemplate(processTemplateId)
processSteps <- processTemplateDTO.getProcessStepTemplates(processTemplateId)
} yield (processTemplate, processSteps)
process.map(p => Ok(Json.toJson(p)))
我收到这个错误:
No Json serializer found for type (Option[models.ProcessTemplatesModel], Seq[models.ProcessStepTemplatesModel]). Try to implement an implicit Writes or Format for this type.
您正在尝试将二元组 (x,y) 写入 json。默认情况下,没有可用于元组的写入,即播放框架不知道如何将其转换为 json.
您可以通过提供写入来解决此问题,例如
implicit val writes = new Writes[(A, B)] {
override def writes(o: (A, B)): JsValue =
Json.obj("field1"-> Json.toJson(o._1), "filed2" -> Json.toJson(o._2))
}
您还需要为 ProcessTemplatesModel
和 ProcessStepTemplatesModel
提供写入实现。您可以在 here.