我试图将我的数据从json提取到案例类中而没有成功。
Json文件:
[
{
"name": "bb",
"loc": "sss",
"elements": [
{
"name": "name1",
"loc": "firstHere",
"elements": []
}
]
},
{
"name": "ca",
"loc": "sss",
"elements": []
}
]
我的代码:
case class ElementContainer(name : String, location : String,elements : Seq[ElementContainer])
object elementsFormatter {
implicit val elementFormatter = Json.format[ElementContainer]
}
object Applicationss extends App {
val el = new ElementContainer("name1", "firstHere", Seq.empty)
val el1Cont = new ElementContainer("bb","sss", Seq(el))
val source:String=Source.fromFile("src/bin/elementsTree.json").getLines.mkString
val jsonFormat = Json.parse(source)
val r1= Json.fromJson[ElementContainer](jsonFormat)
}
运行这个后进入r1:
JsError(List((/ elements,List(ValidationError(List(error.path.missing),WrappedArray()))),(/ name,List(ValidationError(List(error.path.missing),WrappedArray( )))),(/ location,List(ValididationError(List(error.path.missing),WrappedArray())))))
一直试图永久提取这些数据,请指教
答案 0 :(得分:0)
您有location
而不是loc
,并且您需要将文件解析为Seq[ElementContainer]
,因为它是一个数组,而不是一个{{1} }}:
ElementContainer
另外,你有Json.fromJson[Seq[ElementContainer]](jsonFormat)
方法会返回错误或解析json对象..