原因是不能方法中定义class
//报错
test("json4s 官网示例3"){
case class Child(name: String, age: Int, birthdate: Option[java.util.Date])
case class Address(street: String, city: String)
case class Person(name: String, address: Address, children: List[Child])
val json = parse("""
{ "name": "joe",
"address": {
"street": "Bulevard",
"city": "Helsinki"
},
"children": [
{
"name": "Mary",
"age": 5,
"birthdate": "2004-09-04T18:06:22Z"
},
{
"name": "Mazy",
"age": 3
}
]
}
""")
implicit val formats: Formats = DefaultFormats
println(json.extract[Person])
val addressJson = json \ "address"
println(addressJson.extract[Address])
println( (json \ "children").extract[List[Child]])
}
修改为:
case class Child(name: String, age: Int, birthdate: Option[java.util.Date])
case class Address(street: String, city: String)
case class Person(name: String, address: Address, children: List[Child])
test("json4s 官网示例3"){
val json = parse("""
{ "name": "joe",
"address": {
"street": "Bulevard",
"city": "Helsinki"
},
"children": [
{
"name": "Mary",
"age": 5,
"birthdate": "2004-09-04T18:06:22Z"
},
{
"name": "Mazy",
"age": 3
}
]
}
""")
implicit val formats: Formats = DefaultFormats
println(json.extract[Person])
val addressJson = json \ "address"
println(addressJson.extract[Address])
println( (json \ "children").extract[List[Child]])
}
修复json4s案例类解析错误,
文章展示了在Scala中使用json4s库时遇到的一个错误,即不能在方法中定义caseclass。通过将caseclass定义移出方法范围,解决了该问题。代码示例包括了caseclass的定义,JSON解析以及从JSON中提取数据到caseclass实例的过程。
628

被折叠的 条评论
为什么被折叠?



