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
Libérer: 2024-11-16 12:34:02
original
370 Les gens l'ont consulté

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 { ... }
Copier après la connexion

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 { ... }
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal