On Oct 3, 12:04 pm, Kevin Wright <kev.lee.wri...@googlemail.com> wrote: > On Sat, Oct 3, 2009 at 10:43 AM, Peter Robinett <pe...@bubblefoundry.com> > wrote: > > > Thanks, Kevin. I'm going to poke around with lift-json a bit more but > > a case class may be the way to go. > > case classes definitely get you some juicy extras, it becomes a lot > easier to filter or map a list of readings when compared to the raw > json.
Great. > You might also want to look at record/mapper if database persistence > is your thing... Hence the original question, whether I could use extract to get instances of my Mapper model. ;-) Case classes would just add another step in the translation, but it looks like it's both necessary and easy. > I'm with DavidP on this one, get as much rich type info into the > system at the earliest opportunity. A timestamp definitely carries > more semantic meaning than a number. Imagine trying to filter the 30 > days worth of readings that were taken between 9am and 5pm GMT (when > your server is running on EST) Good point. Do you know of any sample Mapper code that uses scala- time? I'm still not very strong with making my own mapped types. Peter > > Peter > > > On Oct 3, 11:13 am, Kevin Wright <kev.lee.wri...@googlemail.com> > > wrote: > >> Sounds to me like you want to create yourself a small helper function > >> that can map that structure into your own case class, something like: > > >> case class TempReading(node:String, dt:Int, temp:Double) > > >> It should be possible to do this as a layer on top of the json parser. > >> So you can go from: > > >> Object( > >> List( > >> JField(node,JString(00:1D:C9:00:04:9F)), > >> JField(dt,JInt(1254553581405)), > >> JField(temp,JDouble(27.5)) > >> ) > >> ) > > >> to: > > >> TempReading("00:1D:C9:00:04:9F", 1254553581405, 27.5) > > >> A Map would be an improvement over the raw json, but still is nowhere > >> near as concise or type-safe as the dedicated structure. > > >> You probably also want to rethink using ints for datetime (I guess > >> this is what dt represents). Take a look at the scala-time library, > >> which is a nice wrapper over Java's joda-time. > > >> On Sat, Oct 3, 2009 at 9:46 AM, Peter Robinett <pe...@bubblefoundry.com> > >> wrote: > > >> > I guess this is basically a question for Joni, but I figure I'll throw > >> > it out here for everyone to see. > > >> > Would it be possible to have extract() support Mapper instances in > >> > additional to standard case classes? > > >> > After parsing some JSON I get the following JValue: JObject(List(JField > >> > (node,JString(00:1D:C9:00:04:9F)), JField(dt,JInt(1254553581405)), > >> > JField(temp,JDouble(27.5)))). I'd like to turn this into a new > >> > instance of my Packet model and it'd be awesome if extract could do > >> > that. > > >> > I don't know how hard would it be to add this feature, so I don't know > >> > if this is a reasonable request. This would make making JSON API > >> > endpoints really easy for me and I hope for other people too. > > >> > Peter Robinett --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---