我的理解是,杰克逊的DefaultScalaModule
应该能够开箱即用地阅读scala案例类。但只要我给它不止一个字段,它似乎就会窒息:
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]
任何想法在这里发生了什么?
答案 0 :(得分:0)
好的,我一直在使用Jackson 2.5.4。看起来升级到2.6.6修复了它。
我首先尝试升级到2.7.3,它也解决了这个问题,但似乎打破了别的东西(不确定究竟是什么,我的一些测试失败了,但我还没弄清楚确切的原因,只是放弃它,因为2.6.6似乎做了我需要的。)