Hi David, Thanks for ur replies, I just want to make a generic function which will take an object of mapper and returns the json string of the same.
I have written only two function 1. This will be called by ajax call : def getJSONString(xhtml: Group):NodeSeq = { getJSONStringGeneric(TestGearLogin) // here 'TestGearLogin' is a mapper object } 2. function to make JSON string i.e def getJSONStringGeneric(anyObject :Any):NodeSeq = { var sJSONString = "{\"bindings\": ["; anyObject match { case mm: MetaMapper[_] => // this line is giving error mm.findAll.map(userdetails => { var tempJSON = ""; val ret = new StringBuilder ret.append("{") ret.append(userdetails.getSingleton.appendFieldToStrings (userdetails)) ret.append("}") tempJSON = ret.toString(); // some manipulation for making correct JSON tempJSON = tempJSON.replaceAll("\\{","\\{\""); tempJSON = tempJSON.replaceAll("\\}","\"\\}"); tempJSON = tempJSON.replaceAll("=","\":\""); tempJSON = tempJSON.replaceAll("," , "\",\""); tempJSON += ","; sJSONString +=tempJSON }); } sJSONString = sJSONString.substring(0,sJSONString.length-1); // for slicing the last comma sJSONString += "]}"; Text(sJSONString); } I changed the code as you suggested but getting the error as I posted. Please advise. Thanks Amit Kumar Verma On Apr 10, 9:46 pm, David Pollak <feeder.of.the.be...@gmail.com> wrote: > I think the .asJs method on all Mapper instances should give you the object > in JavaScript representation. > If you can post an entire file, I can work on helping you if the above > doesn't work. > > On Thu, Apr 9, 2009 at 6:53 AM, Amit Kumar Verma <cdac.a...@gmail.com>wrote: > > > > > > > copied the the same code but getting this error > > > type arguments [_] do not conform to trait MetaMapper's type parameter > > bounds [A <: net.liftweb.mapper.Mapper[A]] > > TravelMerchantTest/src/main/ > > scala/com/vtech/travelmerchant/snippet default.scala line 142 > > 1239284830763 85593 > > > Actually I am trying to make the JSON object using a mapper object. My > > function is this : > > > def getJSONStringGeneric(anyObject :Any):NodeSeq = { > > > //Console.println("anyObject.getClass :::::::: > > "+anyObject.getClass); > > > //Console.println("anyObject.getClass.getName :::::::: > > "+anyObject.getClass.getName); > > > //var objTemp = anyObject.asInstanceOf[MetaMapper > > [TestGearLogin]]; > > > var sJSONString = "{\"bindings\": ["; > > > anyObject match { > > case mm: MetaMapper[_] => > > mm.findAll.map( > > (userdetails: Mapper[_]) =>{ > > > var tempJSON = ""; > > > val ret = new StringBuilder > > > ret.append("{") > > > ret.append(userdetails.getSingleton.appendFieldToStrings > > (userdetails)) > > > ret.append("}") > > > // ret will be like > > {username=222,password=222,audit_dt=2009-04-06 > > 00:00:00.0,login_pid=26} > > > tempJSON = ret.toString(); > > > tempJSON = tempJSON.replaceAll("\\{","\\{\""); > > tempJSON = tempJSON.replaceAll("\\}","\"\\}"); > > tempJSON = tempJSON.replaceAll("=","\":\""); > > tempJSON = tempJSON.replaceAll("," , "\",\""); > > tempJSON += ","; > > > sJSONString +=tempJSON > > } > > ) > > } > > > sJSONString = sJSONString.substring(0,sJSONString.length-1); // > > for slicing the last comma > > sJSONString += "]}"; > > > Text(sJSONString); > > } > > > but not getting a way of doing this. Please advise. > > > Thanks > > Amit Kumar Verma > > > On Apr 9, 6:14 pm, David Pollak <feeder.of.the.be...@gmail.com> wrote: > > > Howdy, > > > Scala is a static language, so the class for casting must be known at > > > compile time. It's not possible to construct a String at runtime and > > cast > > > an object into a class represented by that String. > > > > However, casting to a known class is easy in Scala... and it's done > > > primarily using pattern matching. The following code: > > > > def foo(in: Any) = in match { > > > case mm: MetaMapper[_] => > > > mm.findAll.map( > > > (m: Mapper[_]) => > > > m.asJs > > > ) > > > case _ => > > > } > > > > Does what I think you want. It takes an incoming instance, in and > > matches > > > it against being an instance of MetaMapper[_]. This means its some type > > of > > > MetaMapper (we don't know or care what the type parameter is). If it is > > a > > > MetaMapper, it's assigned to the mm variable. We can then call findAll > > on > > > that variable and we have a bunch of Mapper[_] instances. Note that I > > > explicitly called out the type of m in the function, but that line could > > be > > > re-written mm.findAll.map(m => m.asJs) because the compiler infers the > > type > > > of m. > > > > Does this help? > > > > Thanks, > > > > David > > > > On Thu, Apr 9, 2009 at 3:55 AM, Amit Kumar Verma <cdac.a...@gmail.com > > >wrote: > > > > > Hi All, > > > > > I am trying to type cast an scala object to its mapper object > > > > > 1 def getJSONString(anyObject :Object):NodeSeq = { > > > > > 2 var obj = anyObject.asInstanceOf[anyObject.getClass > > > > ().getName()]; > > > > > 3 obj.findAll.map(userdetails => { > > > > // some code will go here > > > > } > > > > Text("any string") > > > > } > > > > > but i am getting erroe as "expected [ but found (" on line 2. > > > > > please help me to typecast the object to its mapper object. > > > > > Thanks > > > > Amit Kumar Verma > > > > -- > > > Lift, the simply functional web frameworkhttp://liftweb.net > > > Beginning Scalahttp://www.apress.com/book/view/1430219890 > > > Follow me:http://twitter.com/dpp > > > Git some:http://github.com/dpp > > -- > Lift, the simply functional web frameworkhttp://liftweb.net > Beginning Scalahttp://www.apress.com/book/view/1430219890 > Follow me:http://twitter.com/dpp > Git some:http://github.com/dpp --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---