ScalaObjectMapper ClassCastException从json文件读取序列

时间:2018-01-22 18:11:35

标签: json scala

我正在使用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

1 个答案:

答案 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