On Thu, Mar 4, 2010 at 12:52 PM, Joni Freeman <freeman.j...@gmail.com>wrote:

> Tried it myself and that version does not work. You probably need
> nested for-comprehension which parses the JSON:
>
>
I added:

  implicit def iterableToBox[X](in: Iterable[X]): Box[X] = in.headOption

And it makes things hunky dory.

Thanks for your help!


> for {
>  user <- WorkerMgr.find(UserId(user)) ?~ "User not found"
>  json <- r.json
>   data <- Box(for {
>     JField("messageId", JInt(messageId))  <- json
>    JField("timestamp", JInt(timemillis)) <- json
>   } yield (messageId, timemillis))
> } yield ...
>
> Cheers Joni
>
> On Mar 4, 9:55 pm, Joni Freeman <freeman.j...@gmail.com> wrote:
> > Hi David,
> >
> > Does this work?
> >
> >       for {
> >         user <- WorkerMgr.find(UserId(user)) ?~ "User not found"
> >         json <- r.json
> >         JField("messageId", JInt(messageId))  <- json
> >         JField("timestamp", JInt(timemillis)) <- json
> >       } yield ..
> >
> > Cheers Joni
> >
> > On Mar 4, 9:28 pm, David Pollak <feeder.of.the.be...@gmail.com> wrote:
> >
> > > Folks,
> >
> > > I'm working on parsing through some JSON that's posted/put as part of a
> > > request.  I'd like to find the messageId field and only get it if its
> type
> > > is JInt.  I'm doing this within a for comprehension that has a Box at
> the
> > > top of it, so the resulting expression must play well with Box.  What
> I've
> > > got is:
> >
> > >       for {
> > >         user <- WorkerMgr.find(UserId(user)) ?~ "User not found"
> > >         json <- r.json
> > >         (_, messageJson) <- (json \ classOf[JField]).find(_._1 ==
> > > "messageId")
> > >         messageId <- Box.asA[JInt](messageJson)
> > >         (_, timemillisJson) <- (json \ classOf[JField]).find(_._1 ==
> > > "timestamp")
> > >         timemillis <- Box.asA[JInt](timemillisJson)
> > >       } yield ...
> >
> > > The lines that look for messageId and timestamp and insure they are
> JInts
> > > are kinda verbose.  Is there a better way to do what I'm trying to do?
> >
> > > Thanks,
> >
> > > David
> >
> > > --
> > > Lift, the simply functional web frameworkhttp://liftweb.net
> > > Beginning Scalahttp://www.apress.com/book/view/1430219890
> > > Follow me:http://twitter.com/dpp
> > > Surf the harmonics
> >
> >
>
> --
> You received this message because you are subscribed to the Google Groups
> "Lift" group.
> To post to this group, send email to lift...@googlegroups.com.
> To unsubscribe from this group, send email to
> liftweb+unsubscr...@googlegroups.com<liftweb%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/liftweb?hl=en.
>
>


-- 
Lift, the simply functional web framework http://liftweb.net
Beginning Scala http://www.apress.com/book/view/1430219890
Follow me: http://twitter.com/dpp
Surf the harmonics

-- 
You received this message because you are subscribed to the Google Groups 
"Lift" group.
To post to this group, send email to lift...@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.

Reply via email to