繁体   English   中英

如何玩和Joda:如何通过Scala序列化和反序列化DateTime?

[英]How to Play & Joda: How to serialize and deserialize DateTime by Scala?

我正在使用Play 2.3.7,Scala版本2.11.4。

我有这种课。 我想序列化和反序列化对象到json和从json到对象。

             case class Person(var id: Int = 0,
                  var first_name: String = "",
                  var last_name: String = "",
                  var email: String = "",
                  var date_of_birth: DateTime = new DateTime())

阅读文档后,我发现自己需要隐式的读写器。 所以我尝试如下:

implicit val personWrites: Writes[Person] = (
  (__ \ "id").write[Int] ~
  (__ \ "first_name").write[String] ~
  (__ \ "last_name").write[String] ~
  (__ \ "email").write[String] ~
  (__ \ "date_of_birth").write[DateTime])

(unlift(Person.unapply))

 implicit val userReads: Reads[Person] = (
(__ \ "id").read[Int] ~
  (__ \ "first_name").read[String] ~
  (__ \ "last_name").read[String] ~
  (__ \ "nickname").read[String] ~
  (__ \ "date_of_birth").read[DateTime] 
 )(Person.apply _)

我收到编译器错误:重载的方法值适用于替代方法……

请告诉我该怎么做? 谢谢!

您不需要编写自己的读取/写入,除非它们不对称或正在做一些自定义操作。 Json有一个格式化方法,可以从案例类创建格式化程序。 它还具有某些东西的默认格式化程序,包括Joda DateTime类。

implicit val personFormatter:Format[Person] = Json.format[Person]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM