1

我正在使用 lift-json (lift 2.6-M3) 并尝试处理具有 epoch 值的 json 数据,例如

"updatetime": 1249409679,

当然 lift-json 可以将它们视为 JInt 值并将对象提取为 Long 字段,但是有没有办法将它们视为 Date(或 DateTime 等)对象?

2014 年 5 月 16 日添加:以下代码似乎有效。

implicit val formats = DefaultFormats + new Serializer[java.util.Date] {
    def deserialize(implicit format: Formats): PartialFunction[(TypeInfo, JValue), java.util.Date] = {
        case (t, JInt(num)) if (t.clazz == classOf[java.util.Date]) => new java.util.Date(num.toLong * 1000)
    }
    def serialize(implicit format: Formats): PartialFunction[Any, JValue] = {
        case x if (x.getClass == classOf[java.util.Date]) => new JInt(x.asInstanceOf[java.util.Date].getTime / 1000)
    }
}
4

1 回答 1

0

lift-json 可以从/到(案例)类映射),如果它还没有从纪元编号到日期的格式化程序,您可以编写自己的格式化程序,请查看此处的文档: https://www .assembla.com/wiki/show/liftweb/JSON_Support

特别是在格式化程序的来源

于 2014-05-15T08:53:55.470 回答