Hi, I've been playing around with lift-json and I keep running into basic
problems.  I'm hoping someone can point out my mistake.
I'm using "net.liftweb" % "lift-json" % "1.1-M5"

Here's the code I'm trying to run:

implicit val formats = net.liftweb.json.DefaultFormats
case class Name(first: String, last: String)
case class User(name: Name, email: String)
import net.liftweb.json.JsonParser._
val u = {
import JsonDSL._
("name" ->
("first" -> "Lincoln") ~
("last" -> "Hochberg")
) ~
("email" -> "linxbet...@gmail.com")
}
val json = JsonDSL.pretty(JsonAST.render(u))
val jsonAST = JsonParser.parse(json)
val user = jsonAST.extract[User]

This blows up with the following exception:

net.liftweb.json.MappingException: Parsed JSON values do not match with
class constructor
args=
arg types=
constructor=public
pkg.TestSpec$$anonfun$1$$anonfun$apply$1(pkg.TestSpec$$anonfun$1)
at
net.liftweb.json.Extraction$.net$liftweb$json$Extraction$$fail(Extraction.scala:151)
at net.liftweb.json.Extraction$.newInstance$1(Extraction.scala:72)
at net.liftweb.json.Extraction$.build$1(Extraction.scala:84)
at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:84)
at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:84)
        at scala.List.flatMap(List.scala:1132)
at net.liftweb.json.Extraction$.build$1(Extraction.scala:84)
at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:84)
at net.liftweb.json.Extraction$$anonfun$1.apply(Extraction.scala:84)
at scala.List.flatMap(List.scala:1132)
at net.liftweb.json.Extraction$.build$1(Extraction.scala:84)
at net.liftweb.json.Extraction$.extract0(Extraction.scala:109)
at net.liftweb.json.Extraction$.extract(Extraction.scala:60)
at net.liftweb.json.JsonAST$JValue.extract(Json.scala:109)
at
com.hotpotato.core.ops.TestSpec$$anonfun$1$$anonfun$apply$1.apply(TestSpec.scala:48)
at
com.hotpotato.core.ops.TestSpec$$anonfun$1$$anonfun$apply$1.apply(TestSpec.scala:14)
at
org.specs.specification.ExampleExecution$$anonfun$3$$anonfun$apply$1.apply(Example.scala:207)
at org.specs.specification.Example.execute(Example.scala:121)
at
org.specs.specification.ExampleLifeCycle$class.executeTest(ExampleLifeCycle.scala:20)
at org.specs.Specification.executeTest(Specification.scala:28)
at org.specs.specification.Sus.executeTest(Sus.scala:147)
at
org.specs.specification.ExampleExecution$$anonfun$3.apply(Example.scala:207)
at
org.specs.specification.ExampleExecution$$anonfun$3.apply(Example.scala:194)
at
org.specs.specification.ExampleExecution$$anonfun$2.apply(Example.scala:185)
at org.specs.specification.ExampleExecution.execute(Example.scala:227)
at org.specs.specification.Example.execute(Example.scala:117)
at org.specs.specification.Example.errors(Example.scala:143)
at org.specs.specification.Sus$$anonfun$successes$1.apply(Sus.scala:122)
at org.specs.specification.Sus$$anonfun$successes$1.apply(Sus.scala:122)
at scala.List.filter(List.scala:859)
at org.specs.specification.Sus.successes(Sus.scala:122)
at
org.specs.Specification$$anonfun$successes$1.apply(Specification.scala:84)
at
org.specs.Specification$$anonfun$successes$1.apply(Specification.scala:84)
at scala.List.flatMap(List.scala:1132)
at org.specs.Specification.successes(Specification.scala:84)
at
sbt.impl.SpecsRunner.sbt$impl$SpecsRunner$$reportSpecification(TestFrameworkImpl.scala:140)
at sbt.impl.SpecsRunner.runTest(TestFrameworkImpl.scala:123)
at sbt.BasicTestRunner.run(TestFramework.scala:38)
at
sbt.TestFramework$$anonfun$7$$anonfun$apply$8.runTest$1(TestFramework.scala:136)
at
sbt.TestFramework$$anonfun$7$$anonfun$apply$8$$anonfun$apply$9.apply(TestFramework.scala:147)
at
sbt.TestFramework$$anonfun$7$$anonfun$apply$8$$anonfun$apply$9.apply(TestFramework.scala:147)
at sbt.NamedTestTask.run(TestFramework.scala:57)
at
sbt.ScalaProject$$anonfun$sbt$ScalaProject$$toTask$1.apply(ScalaProject.scala:167)
at
sbt.ScalaProject$$anonfun$sbt$ScalaProject$$toTask$1.apply(ScalaProject.scala:167)
at sbt.TaskManager$Task.invoke(TaskManager.scala:62)
at sbt.impl.RunTask.runTask(RunTask.scala:78)
at sbt.impl.RunTask.sbt$impl$RunTask$$runIfNotRoot(RunTask.scala:63)
at sbt.impl.RunTask$$anonfun$runTasksExceptRoot$3.apply(RunTask.scala:49)
at sbt.impl.RunTask$$anonfun$runTasksExceptRoot$3.apply(RunTask.scala:49)
at sbt.Distributor$Run$Worker$$anonfun$2.apply(ParallelRunner.scala:130)
at sbt.Distributor$Run$Worker$$anonfun$2.apply(ParallelRunner.scala:130)
at sbt.Control$.trapUnit(Control.scala:19)
at sbt.Distributor$Run$Worker.run(ParallelRunner.scala:130)

Any ideas?

Thanks,
Lincoln

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to