私はlift-json(lift 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)
}
}