Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 使用Jerkson反序列化案例类(嵌套)_Json_Scala_Case Class_Jerkson - Fatal编程技术网

Json 使用Jerkson反序列化案例类(嵌套)

Json 使用Jerkson反序列化案例类(嵌套),json,scala,case-class,jerkson,Json,Scala,Case Class,Jerkson,在EclipseScalaIDE中使用工作表包含代码和输出 这段简单的代码给出了ClassNotFoundException。由于某种原因,它似乎找不到Address类 类似:但它们的问题与Play框架和解析错误有关 import com.codahale.jerkson.Json._ object person { case class Address(city: String, state: String) case class Person(name: String, age:

在EclipseScalaIDE中使用工作表包含代码和输出

这段简单的代码给出了ClassNotFoundException。由于某种原因,它似乎找不到Address类

类似:但它们的问题与Play框架和解析错误有关

import com.codahale.jerkson.Json._

object person {

  case class Address(city: String, state: String)
  case class Person(name: String, age: Int, addresses: Seq[Address])

  parse[Person]("""{"name":"James", "age":25, "addresses": [{"city":"New York", "state": "NY"}, {"city":"Brooklyn", "state": "NY"}]}""")
  //> java.lang.ClassNotFoundException: <empty>.person.Address
  //|   at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
  //|   at java.security.AccessController.doPrivileged(Native Method)
  //|   at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
  //|   at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
  //|   at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
  //|   at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
  //|   at com.codahale.jerkson.util.CaseClassSigParser$.loadClass(CaseClassSigP
  //| arser.scala:186)
  //|   at com.codahale.jerkson.util.CaseClassSigParser$.typeRef2JavaType(CaseCl
  //| assSigParser.scala:143)
  //|   at com.codahale.jerkson.util.CaseClassSigParser$$anonfun$typeRef2JavaTyp
  //| e$1.apply(CaseClassSigParser.scala:146)
  //|   at com.codahale.jerkson.util.CaseClassSigParser$$anonfun$typeRef2JavaTyp
  //| e$1.apply(CaseClassSigParser.scala:146)
  //|   at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike
  //| .scala:233)
  //|   
  //| Output exceeds cutoff limit.

}

我通过使用lift json jar来实现它。请参阅文档中的

package com.example.json

import net.liftweb.json._

object HelloJson extends App {

  case class Address(city: String, state: String)
  case class Person(name: String, addresses: List[Address])

  implicit val formats = DefaultFormats
  val json = parse(""" { "name" : "Billy", "addresses" : [{"city": "New York", "state": "NY"}, {"city": "Washington", "state": "DC"}] } """)
  println(json.extract[Person])
}

实际上现在也有同样的问题,但我不想切换到lift json。