使用Play Framework的JSON库自定义JodaTime序列化程序? [英] Custom JodaTime serializer using Play Framework's JSON library?
问题描述
如何为JSON实现自定义的JodaTime的DateTime序列化器/反序列化器?我倾向于使用Play Framework的JSON库(2.1.1).有一个默认的DateTime序列化程序,但它使用dt.getMillis
而不是.toString
,它将返回一个符合ISO的字符串.
How do I implement a custom JodaTime's DateTime serializer/deserializer for JSON? I'm inclined to use the Play Framework's JSON library (2.1.1). There is a default DateTime serializer, but it uses dt.getMillis
instead of .toString
which would return an ISO compliant String.
案例类的读写Reads [T]和Writes [T]似乎很简单,但是我不知道如何为DateTime做同样的事情.
Writing Reads[T] amd Writes[T] for case classes seems fairly straightforward, but I can't figure out how to do the same for DateTime.
推荐答案
我使用Play 2.3.7并在伴随对象中定义具有字符串模式的隐式读/写:
I use Play 2.3.7 and define in companion object implicit reads/writes with string pattern:
case class User(username:String, birthday:org.joda.time.DateTime)
object User {
implicit val yourJodaDateReads = Reads.jodaDateReads("yyyy-MM-dd'T'HH:mm:ss'Z'")
implicit val yourJodaDateWrites = Writes.jodaDateWrites("yyyy-MM-dd'T'HH:mm:ss'Z'")
implicit val userFormat = Json.format[User]
}
这篇关于使用Play Framework的JSON库自定义JodaTime序列化程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!