Maison > Java > javaDidacticiel > le corps du texte

Comment gérer les erreurs de « Champ non reconnu » lors de l'utilisation de Jackson avec JSON ?

Patricia Arquette
Libérer: 2024-11-17 07:18:03
original
620 Les gens l'ont consulté

How to Handle

Jackson avec JSON : résolution de champ non reconnu

Lors de la tentative de conversion d'une chaîne JSON en un objet Java à l'aide de Jackson, un "Champ non reconnu" une erreur peut survenir. Cela se produit lorsqu'un champ existe dans le JSON mais n'est pas présent dans la classe Java correspondante.

Dans l'exemple fourni, l'entrée JSON contient un champ "wrapper", qui est absent dans les classes Student et Wrapper. . Pour résoudre ce problème, vous pouvez utiliser l'annotation au niveau de la classe de Jackson : @JsonIgnoreProperties.

Annotation @JsonIgnoreProperties

L'annotation @JsonIgnoreProperties vous permet de spécifier quelles propriétés dans le JSON doit être ignoré. Ceci est particulièrement utile lorsque vous n'avez besoin que d'un sous-ensemble des propriétés JSON et que vous souhaitez éviter de créer un mappage volumineux.

Utilisation

Pour ignorer le champ "wrapper" dans votre JSON, vous pouvez ajouter l'annotation @JsonIgnoreProperties à votre classe Wrapper :

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;

@JsonIgnoreProperties(ignoreUnknown = true)
public class Wrapper { ... }
Copier après la connexion

En utilisant ignoreUnknown = vrai, vous demandez à Jackson d'ignorer toutes les propriétés inconnues qu'il rencontre dans le JSON.

Approches alternatives

Alternativement, vous pouvez déclarer explicitement un getter et un setter pour le "wrapper " dans votre classe Wrapper, même si vous n'avez pas l'intention de les utiliser. Cela permettra à Jackson de prendre conscience du champ et d'éviter l'erreur "Champ non reconnu".

Il est également possible d'utiliser l'annotation @JacksonXmlRootElement pour spécifier l'élément racine du JSON, mais ce n'est peut-être pas la meilleure solution dans tous les scénarios.

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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal