Hey Joni, What did you think of ScalaQuery btw? Have you used it inside a lift app?
Cheers, Tim On 11 Jan 2010, at 11:07, Joni Freeman wrote: > Ok, thanks for clarification. Unfortunately my knowledge about mapper > is very limited (I've previously used ScalaQuery for db persistence). > Maybe someone else can answer the question better, the question being: > What is the easiest way to store instances of Observations into > database using mapper. > > case class Observation(notice: List[Notice], header: List[Header], > data: List[Data]) > > Notice, Header and Data are simple case classes having just primitive > fields. > > Cheers Joni > > On 11 tammi, 10:36, Randinn <rand...@gmail.com> wrote: >> Sorry for the confusion Observation is a table actually, I meant to >> write mapper. So what we're doing is calling up the json file, making >> it a string, putting it through the parcer and inserting it into the >> table. >> >> On Jan 11, 5:49 pm, Joni Freeman <freeman.j...@gmail.com> wrote: >> >>> Hi, >> >>> I'm sorry but I'm not totally sure what you are trying to accomplish. >>> What would be the key in that map and what would be its values? >> >>> Cheers Joni >> >>> On 11 tammi, 03:14, Randinn <rand...@gmail.com> wrote: >> >>>> I should explain what we are planning, the idea is to get the json >>>> file into a string, parse it and save the caught information into a >>>> Observation map. >> >>>> On Jan 11, 11:23 am, Randinn <rand...@gmail.com> wrote: >> >>>>> Forgive my ignorance but I was wondering why (json \ >>>>> "observations").extract[Observation], is it to save as a flat file? >> >>>>> On Jan 4, 7:13 am, Randinn <rand...@gmail.com> wrote: >> >>>>>> I tried some of the changes you made but not all of them, and (json\ >>>>>> "observations").extract[Observation], I had no idea about that one. >>>>>> Thank you very much for your help, it is appreciated. >> >>>>>> On Jan 4, 1:00 am, Joni Freeman <freeman.j...@gmail.com> wrote: >> >>>>>>> Google Groups does not shine in formatting code snippets. Here's nicer >>>>>>> version: >> >>>>>>> http://paste.pocoo.org/show/161578/ >> >>>>>>> Cheers Joni >> >>>>>>> On 3 tammi, 12:20, Joni Freeman <freeman.j...@gmail.com> wrote: >> >>>>>>>> Hi, >> >>>>>>>> That's almost correct. I did following changes after looking intoJSON >>>>>>>> content. >> >>>>>>>> 1. 'notice' and 'header' areJSONarrays just like 'data'. Therefore: >>>>>>>> case class Observation(notice: List[Notice], header: List[Header], >>>>>>>> data: List[Data]) >> >>>>>>>> 2. There's optional data inJSON(some datapoints are nulls and Scala >>>>>>>> Int or Double can't take null values). This can be fixed by extracting >>>>>>>> into Option. >> >>>>>>>> 3. The extracted Observation is inJSONfield 'observations'. >>>>>>>> Therefore: >>>>>>>> (json\ "observations").extract[Observation] >> >>>>>>>> Your error stack trace suggests that you have an old version of lift- >>>>>>>> json. Please upgrade to M8, there was a critical bug in case class >>>>>>>> extraction in older versions. >> >>>>>>>> Full example which works for me: >> >>>>>>>> implicit val formats = net.liftweb.json.DefaultFormats >>>>>>>> case class Notice(copyright: String, copyright_url: String, >>>>>>>> disclaimer_url: String) >>>>>>>> case class Header(refresh_message: String, ID: String, main_ID: >>>>>>>> String, name: String, state_time_zone: String, time_zone: String, >>>>>>>> product_name: String, state: String) >>>>>>>> case class Data(sort_order: Int, wmo: Int, history_product: String, >>>>>>>> local_date_time: String, >>>>>>>> local_date_time_full: String, air_temp: Option >>>>>>>> [Double], dewpt: Option[Double], apparent_t: Option[Double], >>>>>>>> rel_hum: Option[Int], delta_t: Option[Double], >>>>>>>> wind_dir: String, wind_spd_kt: Option[Double], gust_kt: Option >>>>>>>> [Double], >>>>>>>> wind_spd_kmh: Option[Double], press: Option[Double], >>>>>>>> rain_trace: String) >> >>>>>>>> case class Observation(notice: List[Notice], header: List[Header], >>>>>>>> data: List[Data]) >> >>>>>>>> (json\ "observations").extract[Observation] >> >>>>>>>> Cheers Joni >> >>>>>>>> On 3 tammi, 09:17, Randinn <rand...@gmail.com> wrote: >> >>>>>>>>> I'm having a bit of trouble with LiftJsonparcing, I know I'm not >>>>>>>>> doing it correctly but looking at the examples I cannot figure out >>>>>>>>> what, anyway, here is the code in question..... If someone could point >>>>>>>>> me in the right direction that would be great, thanks in advance. >> >>>>>>>>> class HelloWorld { >>>>>>>>> def howdy = <span>Welcome to hello-lift at {new >>>>>>>>> _root_.java.util.Date}</span> >>>>>>>>> val http = new Http >>>>>>>>> val bos = new ByteArrayOutputStream >>>>>>>>> val myRequest = new Request("http://www.bom.gov.au/fwo/IDV60901/ >>>>>>>>> IDV60901.94868.json") >>>>>>>>> val rawdata = http(myRequest >>> bos) >>>>>>>>> val bs = bos.toString >>>>>>>>> val db = :/("www.bom.gov.au") >> >>>>>>>>> valjson= parse(bs) >> >>>>>>>>> implicit val formats = net.liftweb.json.DefaultFormats >>>>>>>>> case class Notice(copyright: String, copyright_url: String, >>>>>>>>> disclaimer_url: String) >>>>>>>>> case class Header(refresh_message: String, ID: String, main_ID: >>>>>>>>> String, name: String, state_time_zone: String, >>>>>>>>> time_zone: String, product_name: String, state: >>>>>>>>> String) >>>>>>>>> case class Data(sort_order: Int, wmo: Int, history_product: String, >>>>>>>>> local_date_time: String, >>>>>>>>> local_date_time_full: Int, air_temp: Double, dewpt: >>>>>>>>> Double, apparent_t: Double, >>>>>>>>> rel_hum: Double, delta_t: Double, wind_dir: Double, >>>>>>>>> wind_spd_kt: Double, gust_kt: Double, >>>>>>>>> wind_spd_kmh: Double, press: Double, rain_trace: >>>>>>>>> Double) >>>>>>>>> case class Observation(notice: Notice, header: Header, data: List >>>>>>>>> [Data]) >>>>>>>>> json.extract[Observation] > -- > 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. > >
-- 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.