Hi, Serializing joda-time is not supported. Last week a type hint mechanism was added to support serialization of polymorphic Lists. This could be generalized a bit so that users can provide de-/ serializers for any type. This could be done for instance using a pair of partial functions. Something like:
type TypeHint = String def serialize: PartialFunction[Any, JValue] def deserialize: PartialFunction[(TypeHint, JValue), Any] Then a support to serialize joda-time DateTime could be implemented as: def serialize(a: Any) = a match { case d: DateTime => JString("t", toString(d)) } def deserialize(hint: TypeHint, json: JValue) = (hint, json) match { case ("DateTime", JString("t", JString(t)) => mkDateTime(t) } I'm in a middle of something else right now but will look into this next. Cheers Joni On 25 loka, 14:27, Christophe Dehlinger <christophedehlin...@gmail.com> wrote: > Hi, > > Is there a way to configure lift-json's case class serialization so that it > uses Joda DateTimes instead of java.util.Date ? > I'd like to known how to make the simple following code work as expected: > > import net.liftweb.json._ > import org.joda.time._ > > case class MyCaseClass(dt: DateTime) > > object TestMain { > def main(args: Array[String]) { > implicit val formats = DefaultFormats > println(Serialization.read[MyCaseClass]("""{ "dt" : > "2009-10-25T12:50:37.560+01:00" }""")) > println(Serialization.write(MyCaseClass(new DateTime))) > } > > } > > (running this code yields: > MyCaseClass(2009-10-25T12:57:03.366+01:00) <-- current date when the > program was run, not the date in the code > {} > ) > > More generally, is there a way to customize lift-json's serialization > mappings, in particular the types lift-json sees as primitive ? > The class I'm actually interested in serializing has many fields whose type > is a non-case class MyRichFloat with a single Float field. It would be > really nice if I could (de)serialize these into JSON floats. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---