验证Json时出现错误:Map没有隐式格式



我是Scala+Play的新手。我试图从其他项目导入代码,创建一个对象mongodb,但在此之前,代码使用Json验证器与隐式。我的对象由两种类型组成:valuunit和CreateDatumRequest。错误在"隐式val createDatumRequestFmt = Json"行。format[CreateDatumRequest]",但说的是上面一行的valuunit对象。

No implicit format for Map[String,Option[nl.amc.ebioscience.rosemary.models.core.Valunit]] available.

.

@Singleton
class DataController @Inject() (securityService: SecurityService) extends Controller with JsonHelpers {
.....
  case class CreateDatumRequest(
      name: String,
      parent: Option[Datum.Id],
      remarks: Option[String],
      category: Tag.Id, // Datum Category tag
      dict: Map[String, Option[Valunit]]) {
    def validate(workspaceId: Tag.Id): Either[String, Map[DefaultModelBase.Id, BaseEntity]] = {
........
}
  object CreateDatumRequest {
    implicit val valunitFmt = Json.format[Valunit]
    implicit val createDatumRequestFmt = Json.format[CreateDatumRequest]
  }
......
}

尝试为dict: Map[String, Option[Valunit]])定义read。您可以在这里阅读更多内容https://www.playframework.com/documentation/2.5.x/ScalaJsonCombinators#complex-reads

最新更新