Sto sviluppando un'applicazione Play e sto cercando di utilizzare un oggetto DateTime Joda nella mia classe case.Come utilizzare Joda DateTime con Play Json
package model
import org.joda.time.DateTime
import play.api.libs.json._
case class User(name: String, created: DateTime)
object User {
implicit val yourJodaDateReads = Reads.jodaDateReads("yyyy-MM-dd'T'HH:mm:ss.SSSZ")
implicit val yourJodaDateWrites = Writes.jodaDateWrites("yyyy-MM-dd'T'HH:mm:ss.SSSZ'")
implicit val userFormat = Json.format[User]
def main(args: Array[String]) {
val value = Json.parse("{ \"name\" : \"hello\" , \"created\" : \"2015-07-16T20:32:04.046+02:00\" }")
println(Json.toJson(new User("user", new DateTime())))
println(Json.fromJson(value))
}
}
Sulla base di questo solution, sto ottenendo questo errore:
Error:(18, -1) Play 2 Compiler:
/activator-1.3.2/notifier-app/app/model/Test.scala:18: ambiguous implicit values:
both value yourJodaDateReads in object User of type => play.api.libs.json.Reads[org.joda.time.DateTime]
and value userFormat in object User of type => play.api.libs.json.OFormat[model.User]
sto usando Activator 1.3.2 and Play 2.3.8.
Potresti per favore avvisarmi?
Grazie in anticipo.
aggiornamento
Capisco che ci sia un conflitto con il valore implicito nel play.api.libs.json.Reads
implicit val DefaultJodaDateReads = jodaDateReads("yyyy-MM-dd")
Come posso risolvere questo problema?
possibile duplicato (http: // StackOverflow.it/questions/18255504/custom-jodatime-serializer-using-play-frameworks-json-library) –
Leggere il mio post anziché rispondere a una risposta errata. Ho citato questo link perché il mio codice è basato su questa discussione .. – Guillaume