- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 Jerkson Json library 序列化一个包含 Date
的对象(Jackson 的包装):
import com.codahale.jerkson.Json
import java.util.Date
case class JTest(
val dTest: Date
)
val jt = new JTest(new Date())
println(Json.generate(jt))
结果是:
{"dTest":1353576079168}
有什么方法可以指定格式或覆盖生成函数吗?
我意识到 Json 没有正确的 Date 类型,所以输出(以毫秒为单位的 unix 时间)是“正确的”。我想将我的日期序列化为 ISO 8601 中的字符串(带时间/时区)格式:2007-04-05T01:12:22+0100
,因为它易于解析且易于阅读。 Date
的 toString 输出 Thu Nov 22 10:27:54 CET 2012
。
最佳答案
这里有两个问题。首先,ISO8601 日期的小问题——这些可以使用 SimpleDateFormat 实现,例如
import java.text._
import java.util._
val d1 = new Date()
val sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ")
println(sdf.format(d1))
格式化程序将解析和格式化。切记不要在线程之间共享它(而是始终在使用前在本地范围内创建一个实例),因为它不是线程安全的。
其次,更棘手的问题是在 Jerkson 中自动使用日期。这似乎是 Jerkson 不如 Lift-json 的一个特性。后者允许将自定义解析器/格式化程序代码插入解析层。我认为 Jerkson 不会。
我们只是通过忽略它来绕过这个限制。我们喜欢 Jerkson 的优越性能,所以我们只使用 Long 和 String 进行日期传输,我们分别处理解析。例如
case class JTest(val dTest: String) {
lazy val dTestDate: Date = {
val sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ")
sdf.parse(dTest)
}
}
关于java - 斯卡拉/ jack 森 : Specifying the format of Date objects in Json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13509922/
我正在尝试对 Jerkson 做这样的事情: parse[Collection[OrderResource]](orderCollectionJson) 它一直告诉我 java.lang.ClassN
我正在使用 Jerkson Json library 序列化一个包含 Date 的对象(Jackson 的包装): import com.codahale.jerkson.Json import ja
我是一名优秀的程序员,十分优秀!