JSON を使用した Jackson: 認識できないフィールドの解決
Jackson を使用して JSON 文字列を Java オブジェクトに変換しようとすると、「認識できないフィールド」が発生します誤差が生じる可能性があります。これは、フィールドが JSON には存在するが、対応する Java クラスには存在しない場合に発生します。
提供された例では、JSON 入力に「ラッパー」フィールドが含まれていますが、このフィールドは Student クラスと Wrapper クラスの両方に存在しません。 。この問題を解決するには、Jackson のクラスレベルのアノテーション @JsonIgnoreProperties.
@JsonIgnoreProperties Annotation
@JsonIgnoreProperties アノテーションを使用すると、どのプロパティをJSON は無視する必要があります。これは、JSON プロパティのサブセットのみが必要で、大規模なマッピングの作成を避けたい場合に特に便利です。
使用法
次の「wrapper」フィールドを無視するにはJSON では、Wrapper クラスに @JsonIgnoreProperties アノテーションを追加できます。
import com.fasterxml.jackson.annotation.JsonIgnoreProperties; @JsonIgnoreProperties(ignoreUnknown = true) public class Wrapper { ... }
ignoreUnknown = true を使用すると、JSON 内で検出された未知のプロパティを無視するように Jackson に指示します。
代替アプローチ
別の方法として、使用するつもりがない場合でも、Wrapper クラスの「wrapper」フィールドのゲッターとセッターを明示的に宣言することもできます。これにより、Jackson がフィールドを認識し、「認識されないフィールド」エラーが回避されます。
@JacksonXmlRootElement アノテーションを使用して JSON のルート要素を指定することもできますが、これは最良の解決策ではない可能性があります。すべてのシナリオ。
以上がJSON で Jackson を使用するときに「認識されないフィールド」エラーを処理する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。