JSON4を使用する次の簡単なコードでJSONをデシリアライズするとき
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]
}
}
次のエラーが発生しています。
スレッド「メイン」org.json4sの例外。package $ MappingException: scala.Predef $ .refArrayOps([Ljava / lang / Object;)Lscala / collection / mutable / ArrayOps; 関数本体で定義されたケースクラスはサポートされていません。
誰がそれが起こるのか知っていますか?
回答:
回答№1は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]
}
}