/ / Scala che deserializza JSON con il problema di json4s - scala, json4s

Scala deserializzare JSON con il problema di json4s - scala, json4s

quando deserializzo un JSON con il seguente codice semplice, uso 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]
}
}

Sta dando il seguente errore.

Eccezione nel thread "main" org.json4s.pacchetto da $ MappingException: scala.Predef $ .refArrayOps ([Ljava / lang / Object;) Lscala / raccolta / mutevoli / ArrayOps; Le classi di casi definite nei corpi funzione non sono supportate.

Qualcuno sa perché succede?

risposte:

1 per risposta № 1

Come è emerso nei commenti, questa limitazione è stata superata con la versione più recente. Tuttavia, avresti potuto fare questo lavoro spostando il case class definizione al di fuori del tuo 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]
}

}