json - 使用Play Framework JSON库自定义JodaTime序列化?

标签 json scala serialization deserialization playframework-2.1

如何为JSON实现自定义的JodaTime的DateTime序列化器/反序列化器?我倾向于使用Play Framework的JSON库(2.1.1)。有一个默认的DateTime序列化程序,但是它使用dt.getMillis而不是.toString,它将返回一个符合ISO的字符串。

为案例类编写Reads [T]和Writes [T]似乎很简单,但我不知道如何为DateTime做同样的事情。

最佳答案

我使用Play 2.3.7,并在伴随对象中使用字符串模式定义隐式读/写:

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]
}

关于json - 使用Play Framework JSON库自定义JodaTime序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18255504/

相关文章:

scala - 异常查询,未找到展平

scala - 如何使用 foldRight/foldLeft 将 HList 转换为另一个 HList

c# - 将 HybridDictionary 序列化为 byte[]

json - 从黑莓中的 Json 获取数据

java - 无法使用 Java 创建正确的 JSON

ios - 这个功能对吗?调用带闭包的函数(swift - iOS)

scala - 执行 play Future 查询时,scala 变量的值不会改变。为什么?

Gob 解码给出 "DecodeValue of unassignable value"错误

java - 序列化是否保留对象身份?

java - 如何在进行 REST URL 调用后在 JSP 页面中显示 JSON 响应