當我反序列化有以下簡單的代碼usign json4s斯卡拉反序列化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]
}
}
是給下面的錯誤JSON。
異常在線程 「主」 org.json4s.package $ MappingException: scala.Predef $ .refArrayOps([Ljava /郎/對象;)Lscala /收集/可變/ ArrayOps; 不支持在函數體中定義的個案類。
有誰知道它爲什麼會發生?
看來,答案是錯誤:但是你可以通過移動
case class
定義你的main
外界取得了這項工作。你應該在你的'Main'對象之外定義你的case類。 –不幸的是,當我在外部對象中這樣做時,它也會發生: 對象Main { case class Person(name:String,age:Int) } – flavio
您不需要在對象中定義它。一個case類可以被定義爲一個包中的頂層。 –