Maison >Java >javaDidacticiel >Comment gérer les champs non reconnus dans la désérialisation Jackson JSON ?

Comment gérer les champs non reconnus dans la désérialisation Jackson JSON ?

DDD
DDDoriginal
2024-11-16 12:34:02357parcourir

How to Handle Unrecognized Fields in Jackson JSON Deserialization?

Jackson et JSON : gestion des erreurs avec des champs non reconnus

Le problème survient lorsque Jackson rencontre un « wrapper » de propriété non reconnu qu'il tente de mapper à la classe Wrapper. Étant donné que le champ n'est pas défini dans la classe cible, il échoue avec une « UnrecognizedPropertyException ».

Solution

Pour résoudre ce problème, utilisez l'annotation JsonIgnoreProperties de Jackson. Cette annotation peut être appliquée au niveau de la classe pour spécifier que toutes les propriétés non reconnues doivent être ignorées. Par défaut, il ignore toutes les propriétés non explicitement définies dans le POJO.

Un exemple d'utilisation de cette annotation :

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties
class Wrapper { ... }

Cette annotation garantit que toutes les propriétés du JSON qui ne correspondent pas à les champs définis dans la classe Wrapper seront ignorés lors de la désérialisation.

Avancé Option

Pour les cas où vous souhaitez ignorer toutes les propriétés non déclarées, même celles avec une méthode getter et setter définie dans la classe cible, vous pouvez utiliser l'indicateur ignoreUnknown :

@JsonIgnoreProperties(ignoreUnknown = true)
class Wrapper { ... }

En spécifiant ignoreUnknown = true, Jackson ignorera toutes les propriétés du JSON qui n'ont pas de champ correspondant dans la classe Wrapper, quelle que soit l'existence d'un getter ou d'un setter. méthodes.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn