使用Play Framework的JSON库自定义JodaTime序列化程序? [英] Custom JodaTime serializer using Play Framework's JSON library?

查看:95
本文介绍了使用Play Framework的JSON库自定义JodaTime序列化程序?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何为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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆