java - Scala 从 1.9 到 2.1 中的 Jackson 注释被破坏

标签 java scala jackson

刚刚将 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 中有效,我假设有些东西已经改变了。有人知道问题的原因吗?谢谢!

最佳答案

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

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

关于java - Scala 从 1.9 到 2.1 中的 Jackson 注释被破坏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15255101/

相关文章:

java - 将 Java 中的对象列表序列化为 json

java - 如何提高RestTemplate的性能

java - 不同 JVM 中的 Java Web 应用程序中的函数调用

java - JTextField 在设置比其初始大小长的文本后调整大小?

java - 我需要 ghostdriver 才能在 java 中使用 selenium 和 phantomjs 吗?

java - Java 中的随机 GUID(一种不同的格式)

java - Scala getters/setters - 最佳实践?

generics - Scala 泛型与 C# 的比较

scala - Play 路线文件中的框架错误

java - Spring 启动 : Wrapping JSON response in dynamic parent objects