/ / Скала десеріалізує JSON з питанням json4s - scala, json4s

Скасування десеріалізації JSON з проблемою json4s - scala, 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]
}
}

Подає наступну помилку.

Виняток у потоці "main" org.json4s.пакет $ 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]
}

}