Thanks, Joni, that works perfectly! Peter
On Oct 5, 8:49 am, Joni Freeman <freeman.j...@gmail.com> wrote: > Hi Peter, > > To select multiple packets you need to first select the objects within > the array. Like this: > > for { > JObject(packet) <- parse(s) > JField("node", JString(node)) <- packet > JField("dt", JInt(dt)) <- packet > JField("temp", JDouble(temp)) <- packet > > } yield // construct Packet here > > Cheers Joni > > On Oct 5, 2:13 am, Peter Robinett <pe...@bubblefoundry.com> wrote: > > > Thanks, Joni. > > > I've been playing with just that for comprehension syntax over the > > weekend. How would I do it if I had multiple packets? > > { > > "packets": [ > > { > > "node": "00:1D:C9:00:04:9F", > > "dt": 1254553581405, > > "temp": 27.5 > > }, > > { > > "node": "00:1D:C9:00:04:9E", > > "dt": 1254553582405, > > "temp": 24.3 > > } > > ] > > > } > > > I've had some problems iterating across the parsed results. If I do: > > for { > > json <- parse(s) > > JField("node", JString(node)) <- json > > JField("dt", JInt(dt)) <- json > > JField("temp", JDouble(temp)) <- json > > > } yield .... // construct Packet here > > > I will end up with 8 Packets. Should I be doing something like JArray > > (json) <- parse(s)? > > > Thanks for your help, > > Peter > > > On Oct 4, 3:08 pm, Joni Freeman <freeman.j...@gmail.com> wrote: > > > > > 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. > > > > This certainly sounds like a reasonable feature request, I will take a > > > deeper look at it. > > > > Meanwhile, you can use tmp case class as Kevin noted, or use for- > > > comprehension to query the json. Something like: > > > > { > > > "packet": { > > > "node": "00:1D:C9:00:04:9F", > > > "dt": 1254553581405, > > > "temp": 27.5 > > > } > > > > } > > > > val json = parse(s) > > > for { > > > JField("node", JString(node)) <- json > > > JField("dt", JInt(dt)) <- json > > > JField("temp", JDouble(temp)) <- json > > > > } yield .... // construct Packet here > > > > That's a bit verbose but quite flexible. This test case contains more > > > query > > > examples:http://github.com/dpp/liftweb/blob/master/lift-json/src/test/scala/ne... > > > > Cheers Joni --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---