1. ホーム
  2. java

[解決済み] Jacksonを使用したJSONオブジェクトの新しいフィールドを無視する [重複] [重複

2022-03-14 17:44:30

質問

Jackson JSONライブラリを使用して、いくつかのJSONオブジェクトをandroidアプリケーションのPOJOクラスに変換しています。問題は、アプリケーションの公開中にJSONオブジェクトが変更され、新しいフィールドが追加される可能性がありますが、現状では、安全に無視できる単純なStringフィールドが追加された場合でもブレークします。

新しく追加されたフィールドを無視するようにJacksonに指示する方法はありますか?(例えば、POJOオブジェクトに存在しないなど)?グローバルな無視ができれば最高です。

解決方法は?

Jackson は、クラスレベルで使用できるアノテーションを提供しています ( JsonIgnoreProperties ).

クラスの先頭に以下を追加します ( ではなく を個々のメソッドに追加してください)。

@JsonIgnoreProperties(ignoreUnknown = true)
public class Foo {
    ...
}

お使いのJACKSONのバージョンによっては、現在のバージョンで別のインポートを使用する必要があります。

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

は、古いバージョンではそうなっています。

import org.codehaus.jackson.annotate.JsonIgnoreProperties;