这是代码:
def fromStrings(json: String): List[Map[String, Any]] = {
implicit val formats = org.json4s.DefaultFormats
parse(json).extract[List[Map[String, Any]]]
}
这是错误:
java.lang.ClassCastException: scala.collection.immutable.$colon$colon cannot be cast to scala.collection.mutable.Seq
我能够反序列化单个对象,我认为扩展到列表很容易,但是它没有按预期工作。我查找了此错误,但没有发现与我在这里所做的事情有关的情况。
这是我正在测试的数据:
[
{
"schemaVersion": "1",
"data": {
"new_data": {
"case_id": "1"
},
"id": "1"
}
},
{
"schemaVersion": "2",
"data": {
"new_data": {
"case_id": "2"
},
"id": "2"
}
},
{
"schemaVersion": "3",
"data": {
"new_data": {
"case_id": "3"
},
"id": "3"
}
}
]
def deserializeObjects(json: String): Seq[Map[String, Any]] = {
implicit val formats = org.json4s.DefaultFormats
val jsons = JsonParser.parseString(json).getAsJsonArray.iterator()
var maps: Seq[Map[String, Any]] = Seq()
while (jsons.hasNext) {
val s = jsons.next().getAsJsonObject.toString
maps = maps :+ parse(s).extract[Map[String, Any]]
}
maps
}