0
我的理解是,傑克遜的DefaultScalaModule
應該是能看懂的Scala case類外的開箱。但它似乎窒息,只要我給它超過一個領域:解析Scala的case類與傑克遜
val mapper = new ObjectMapper().registerModule(DefaultScalaModule)
scala> mapper.readValue("""{"foo": "bar", "bar": "foo"}""", classOf[Map[String, String]])
res98: Map[String,String] = Map(foo -> bar, bar -> foo)
class Foo(foo: String)
scala> mapper.readValue("""{"foo": "bar"}""", classOf[Foo])
res101: Foo = Foo(bar)
class Foo(foo: String, bar: String)
scala> mapper.readValue("""{"foo": "bar", "bar": "foo"}""", classOf[Foo])
com.fasterxml.jackson.databind.JsonMappingException: Could not find creator property with name 'foo' (in class Foo)
at [Source: {"foo": "bar", "bar": "foo"}; line: 1, column: 1]
任何想法這是怎麼回事?
奇怪。像你寫的那樣爲我工作(將Foo類聲明爲** case類**)。您正在使用哪些版本的庫? – Mikesname
@Mikesname是的,當我嘗試它的時候,它實際上是一個'case class',不知何故,當我把它粘貼到問題中時,它失去了'case'。我正在使用傑克遜2.5.4 – Dima