2017-10-24 46 views
1

Jackson ObjectMapper throwing NullPointerException even with NON_NULLを検索しましたが、私のセッターを変更するクラスはありません。Jackson Map Null Jsonをリストに追加

私は

{... "fieldNames": null,...} 

を与えられていていると私はクラスの制御や、私が取得していますJSONを持っていない

Collection<String> fieldNames 

にそれをデシリアライズすることになっています。

これを処理するために使用できる設定はありますか? DeserializationFeatureを見ましたが、見つからなかった

答えて

1

デシリアライズするクラスを制御していないときは、ミックスインを使用できます。あなたはCollection<String> fieldNamesを含むクラスの名前を言及していないので、それがFieldsと呼ばれると仮定することができます。次に、新しいクラスを作成:

class FieldsMixin { 
    @JsonSetter(nulls = Nulls.SKIP) 
    Collection<String> fieldNames; 
} 

を、元の変更されていないクラスに関連付けごObjectMapperにミックスインクラスを追加します。

mapper.addMixIn(Fields.class, FieldsMixin.class); 

あなたはそれがすると思いますので、これはジャクソン2.9の新機能で、 setterメソッドの呼び出しをスキップするか、JSONの値がnullの場合はフィールドを設定します。 Documentation

関連する問題