Json Scala playframework时间戳隐式读写器
我正在使用play.api.libs.json.\uu库。我有这样的Scala课程。我需要以Json格式读/写这个类。因为没有时间戳的隐式读写器。我必须提供我自己的。我尝试了两种方法,不幸的是没有一种有效。你能告诉我怎么做吗?提前谢谢Json Scala playframework时间戳隐式读写器,json,scala,playframework-2.1,playframework-json,Json,Scala,Playframework 2.1,Playframework Json,我正在使用play.api.libs.json.\uu库。我有这样的Scala课程。我需要以Json格式读/写这个类。因为没有时间戳的隐式读写器。我必须提供我自己的。我尝试了两种方法,不幸的是没有一种有效。你能告诉我怎么做吗?提前谢谢 case class Event(id: Long, startTime: Option[java.sql.Timestamp] = None, endTime: Option[java.sql.Timestamp] = None) 我想发布/获取以下Json格
case class Event(id: Long, startTime: Option[java.sql.Timestamp] = None, endTime: Option[java.sql.Timestamp] = None)
我想发布/获取以下Json格式
{
"id": 1,
"startTime": "2011-10-02 18:48:05.123456",
"endTime": "2011-10-02 20:48:05.123456"
}
只需在事件类的Json读取器或Json格式之前添加
import play.api.libs.json.Json._
import play.api.libs.json._
def timestampToDateTime(t: Timestamp): DateTime = new DateTime(t.getTime)
def dateTimeToTimestamp(dt: DateTime): Timestamp = new Timestamp(dt.getMillis)
implicit val timestampFormat = new Format[Timestamp] {
def writes(t: Timestamp): JsValue = toJson(timestampToDateTime(t))
def reads(json: JsValue): JsResult[Timestamp] = fromJson[DateTime](json).map(dateTimeToTimestamp)
}
我所做的是为个人项目编写代码:
implicit object timestampFormat extends Format[Timestamp] {
val format = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SS'Z'")
def reads(json: JsValue) = {
val str = json.as[String]
JsSuccess(new Timestamp(format.parse(str).getTime))
}
def writes(ts: Timestamp) = JsString(format.format(ts))
}
别忘了导入以下内容:
import java.sql.Timestamp
import java.text.SimpleDateFormat
import play.api.Play.current
import play.api.libs.json._
它尊重Javascript标准
来源:toJson,timestampToDateTime,fromJson,dateTimeToTimestamp未定义编译器错误。是否需要导入其他库?抱歉,我忘记添加此函数的实现DateTimeToTimeStamp takes DateTime参数。那么如何调用def reads(json:JsValue):JsResult[Timestamp]=fromJson[DateTime](json).map(dateTimeToTimestamp)?仍然是json,fromJson未定义。别忘了添加import play.api.libs.json.json.\uu或添加json。在toJson之前,FromJSON使用哪个DateTime类?