3

Jackson を 1.9 から 2.1 にアップグレードしたところ、すぐに@(JsonProperty@field)注釈が壊れていることに気付きました。@fieldScala ケース クラスの特別な点に注意してください。サンプルは次のとおりです。

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.codehausましたcom.fasterxml

それまでの間、必要な人のためにレガシー イントロスペクターがあります: https://github.com/Laures/jackson-legacy-introspector

于 2013-03-06T19:37:48.160 に答える