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



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

"updatetime": 1249409679,

当然lift-json可以把它们当作JInt值,提取对象作为Long字段,但是是否有一种方法可以将它们视为日期(或DateTime等)对象?

添加5/16/2014:下面的代码似乎可以工作。

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)
    }
}

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

,特别是在格式化器的源

相关内容

  • 没有找到相关文章