Я пытаюсь сериализовать (String, DateTime), но у меня возникла ошибка. Я понимаю, что есть более актуальная версия play.libs.json.jodaReads / .jodaWrites
, но в настоящее время я должен использовать метод, который я покажу ниже.
Как правильно определить формат чтения / записи / для joda DateTime?
import play.api.concurrent.Execution.Implicits.defaultContext
import play.libs.json._
import org.joda.time.DateTime
Репозиторий
def dateTimeCall(id: String): Future[(String, DateTime)] = {
implicit val jodaDateReads = Reads.jodaDateReads("yyyyMMdd'T'HHmmss.SSS'Z'")
implicit val jodaDateWrites = Writes.jodaDateWrites("yyyyMMdd'T'HHmmss.SSS'Z'")
implicit val dateFormat: Format[DateTime] = Format(jodaDateReads, jodaDateWrites)
implicit val dateTimeFormat: Format[(String, DateTime)] = Json.format[(String, DateTime)]
val result: Future[(String, DateTime)] = getDateTime(id)
result
}
Контроллер
def dateTimeController(/* -- ommitted --*/) {
val id = "..."
repository.getDateTime(id).map {
result =>
Ok(serialize(result))
}
}
Ошибка
No Json serializer found for type (String, org.joda.time.DateTime). Try to implement an implicit Writes or Format for this type.
[error] Ok(serialize(result))
[error] ^
Спасибо.