Play 2.6中的Joda DateTime格式无效

Shu*_*sky 2 datetime json scala jodatime playframework

尝试迁移我的代码以播放2.6除了DateTime类型的格式外,一切都很好.

作为迁移的一部分,我确实添加了play-json-joda依赖项.

但是,这样的事情:

case class GeoArea(id: Option[Int] = None,
                   continentId: Option[Int] = None,
                   countryId: Option[Int] = None,
                   code: String,
                   name: String,
                   discr: Discriminator.Value,
                   createdAt: DateTime = DateTime.now,
                   updatedAt: DateTime = DateTime.now,
                   deletedAt: Option[DateTime] = None,
                   createdBy: Option[String] = None,
                   updatedBy: Option[String] = None)
Run Code Online (Sandbox Code Playgroud)

格式对象定义为:

implicit lazy val geoAreaFormat: Format[GeoArea] = Json.format[GeoArea]
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

没有play.api.libs.json.Format的实例可用于隐式作用域中的org.joda.time.DateTime,org.joda.time.DateTime,scala.Option [org.joda.time.DateTime](提示:如果在同一个文件中声明,请确保它在之前声明)[error]
隐式lazy val geoAreaFormat:格式[GeoArea] = Json.format [GeoArea]

我错过了什么?我还需要在范围内解决这个问题吗?

我的导入如下:

import driver.PGDriver.api._
import org.joda.time.DateTime
import play.api.libs.json._
import slick.lifted.Tag
import model.GeoAreas.Discriminator
import converters.{JsonEnumeration, SlickEnumeration}
Run Code Online (Sandbox Code Playgroud)

并且它们在迁移过程中没有发生变化,但这些变化足以让一切顺利进行.

cut*_*ind 7

在你的build.sbt中添加:

libraryDependencies += "com.typesafe.play" % "play-json-joda_2.12" % "2.6.0"
Run Code Online (Sandbox Code Playgroud)

然后在你的模型文件中导入:

import play.api.libs.json.JodaWrites._
import play.api.libs.json.JodaReads._
Run Code Online (Sandbox Code Playgroud)