3

刚刚将 Jackson 从 1.9 升级到 2.1 并立即注意到@(JsonProperty@field)注释已损坏。请注意 Scala 案例类的特殊之处@field。这是一个示例:

case class Watcher(
  @(JsonProperty@field)("guid")
  @(RiakKey@field)
  val guid: String,

  @(JsonProperty@field)("socialNetwork")
  val socialNetwork: String, // instragram, twitter
)

当我从数据库中提取一个序列化为 JSON 的 Watcher 时,Jackson 去反序列化它并抛出异常:

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "guid" (class com.domain.SocialStreamService.models.Watcher), not marked as ignorable (0 known properties: ])

现在,由于这是在工作1.9,我假设有些事情发生了变化。有人知道问题的原因吗?谢谢!

4

1 回答 1

2

这是由命名空间问题和我使用 Jerkson(它仍然作为依赖项引入 1.x,因此不会引发编译器错误)引起的。为了解决这个问题,我不得不将命名空间从 更改com.codehauscom.fasterxml.

与此同时,有一个遗留自省器供需要的人使用:https ://github.com/Laures/jackson-legacy-introspector

于 2013-03-06T19:37:48.160 回答