我是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