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

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

Patricia Arquette
Patricia Arquetteoriginal
2024-11-17 07:18:03616parcourir

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 { ... }

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!

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