如何使用lift-json处理EPOCH数据

时间:2014-05-15 02:34:16

标签: json scala lift epoch lift-json

我使用lift-json(升降机2.6-M3)和 试图处理具有像

这样的纪元值的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)
    }
}

1 个答案:

答案 0 :(得分:0)

lift-json可以映射/到(case)类)如果它还没有Formatter从epoch编号转到Date,你可以编写自己的格式化程序, 看看这里的文档: https://www.assembla.com/wiki/show/liftweb/JSON_Support

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