我正在使用com.fasterxml.jackson.module.scala.experimental.ScalaObjectMapper
对json文件中的一系列对象进行反序列化:
val mapper = new ObjectMapper() with ScalaObjectMapper
mapper.registerModule(DefaultScalaModule)
case class MyPair(key: String, value: Double)
mapper.readValue(new File("mypairs.json"), classOf[Seq[MyPair]])
mypairs.json
:
[
{"key":"B","value":0.0},
{"key":"C","value":20.0},
{"key":"A","value":30.0}
]
这导致:
java.lang.ClassCastException: scala.collection.immutable.Map$Map2 cannot be cast to MyPair
答案 0 :(得分:2)
我只用以下方法解决了这个问题:
mapper.readValue[Seq[MyPair]] (new File("mypairs.json"))
上面的方法是在ScalaObjectMapper上实现的 以及导致问题的那个
public <T> T readValue(File src, Class<T> valueType)
来自com.fasterxml.jackson.databind.ObjectMapper