ホームページ >Java >&#&チュートリアル >Jackson は逆シリアル化中に JSON オブジェクトの新しいフィールドをどのように無視できますか?

Jackson は逆シリアル化中に JSON オブジェクトの新しいフィールドをどのように無視できますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-28 08:29:11819ブラウズ

How Can Jackson Ignore New Fields in JSON Objects During Deserialization?

Jackson を使用した JSON オブジェクトの新しいフィールドの無視

JSON オブジェクトは変更されることが多く、Jackson などのライブラリを使用して POJO に変換するとエラーが発生する可能性があります。クラス。 Jackson は、JSON オブジェクトに新しく追加されたフィールドを無視する方法を提供する人気の JSON 処理ライブラリです。

問題

JSON オブジェクトに、対応する POJO クラスに存在しない追加フィールドがある場合, ジャクソンはオブジェクトの変換に失敗します。これは、新しいフィールドがオプションで無視しても安全な場合でも発生する可能性があります。

解決策: @JsonIgnoreProperties

Jackson は、不明なプロパティを無視するためにクラスに適用できる @JsonIgnoreProperties アノテーションを提供しています。逆シリアル化中。このアノテーションをignoreUnknown = trueとともに使用すると、JacksonはPOJOクラスに存在しないすべてのプロパティを無視します。

@JsonIgnorePropertiesを使用するには、単に次のアノテーションをPOJOクラスの先頭に追加します。

@JsonIgnoreProperties(ignoreUnknown = true)
public class Foo {
    // Class fields
}

Import Statement

Jackson のバージョンに応じて、を使用している場合は、@JsonIgnoreProperties の正しいクラスをインポートする必要があります:

Jackson 2.x の場合:

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

Jackson 1.x の場合:

import org.codehaus.jackson.annotate.JsonIgnoreProperties;

を使用して@JsonIgnoreProperties を使用すると、JSON オブジェクトに新しいフィールドが含まれるときに Jackson が壊れるのを防ぐことができます。このアノテーションは、進化する JSON スキーマを処理し、JSON オブジェクトが変更されてもコードが安定した状態を保つためのシンプルかつ効果的な方法を提供します。

以上がJackson は逆シリアル化中に JSON オブジェクトの新しいフィールドをどのように無視できますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。