【发布时间】:2012-11-23 21:54:26
【问题描述】:
我正在编写以下代码行。
val list = Car.getNames()
Ok(Json.toJson(list))
我收到以下错误....
[错误] my_app/app/models/Car.scala:51: 找不到 java.util.Date 类型的 Json 反序列化器。尝试为此类型实现隐式读取或格式化。
Car 将 java.util.date 对象作为参数之一,我实现了 Reads 和 Writes 以支持 java.util.date 对象,因为 import play.api.libs.json.* 不支持它。
你能指出我的错误吗?
implicit object CarFormat extends Format[Car] {
def reads(json: JsValue): Car = Car(
(json \ "id").as[Long],
(json \ "height").as[Double],
(json \ "weight").as[Double],
(json \ "date").asOpt[java.util.Date]
)
def writes(car: Car) =
JsObject(
Seq(
"id" -> JsString(car.id.toString),
"height" -> JsString(car.height.toString),
"weight" -> JsString(car.weight.toString),
"date" -> JsString(car.date.toString)
)
)
}
【问题讨论】:
-
我建议您不要使用 java.util.Date - 使用更好的日期类,例如 Joda Date Time。这是github.com/jorgeortiz85/scala-time 的 Scala 包装器
-
对于迟到的回复感到抱歉,我从您的评论中得到了我想要的确切结果。谢谢你:)
标签: scala playframework