当我使用以下简单代码反序列化JSON时使用json4s
package main.scala
import org.json4s._
import org.json4s.jackson.JsonMethods._
object Main {
case class Person(name: String, age: Int)
def main(args: Array[String]): Unit = {
val jsValue = parse("""{"name":"john", "age": 28}""")
implicit val formats = DefaultFormats
val p = jsValue.extract[Person]
}
}
发出以下错误。
线程中的异常" main" org.json4s.package $ MappingException: scala.Predef $ .refArrayOps([Ljava /郎/对象;)Lscala /收集/可变/ ArrayOps; 不支持在函数体中定义的案例类。
有谁知道为什么会这样?
答案 0 :(得分:1)
正如评论中所述,新版本已超越此限制。但是,您可以通过将case class
定义移到main
:
package main.scala
import org.json4s._
import org.json4s.jackson.JsonMethods._
// here!
case class Person(name: String, age: Int)
object Main {
def main(args: Array[String]): Unit = {
val jsValue = parse("""{"name":"john", "age": 28}""")
implicit val formats = DefaultFormats
val p = jsValue.extract[Person]
}
}