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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 <[email protected]> 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 [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/liftweb?hl=en.
