Maison > Java > javaDidacticiel > Pourquoi est-ce que je reçois une erreur « Échec du rebond pour taper » lors du mappage de Firebase JSON à des objets Java à l'aide de Jackson ?

Pourquoi est-ce que je reçois une erreur « Échec du rebond pour taper » lors du mappage de Firebase JSON à des objets Java à l'aide de Jackson ?

Susan Sarandon
Libérer: 2024-11-26 12:31:10
original
199 Les gens l'ont consulté

Why Am I Getting a

Pourquoi est-ce que j'obtiens une erreur « Échec du rebond pour taper » lors de la conversion de Firebase JSON en objets Java ?

Introduction

Cette erreur se produit pendant la conversion de Firebase JSON en objets Java à l'aide de la bibliothèque Jackson. Cela indique que Jackson n'est pas en mesure de mapper les propriétés JSON à votre classe Java.

Solution

Assurez-vous que les propriétés de la classe Java correspondent aux propriétés JSON

Tout d'abord, assurez-vous que les propriétés de votre classe Java correspondent exactement aux noms de propriétés JSON, y compris les majuscules. De plus, des getters publics doivent exister pour chaque propriété.

Utiliser l'annotation @JsonIgnoreProperties

Si votre classe Java n'inclut pas de mappages pour toutes les propriétés JSON, vous pouvez utiliser l'annotation @JsonIgnoreProperties pour ignorer des propriétés spécifiques. pendant la conversion.

Tirer parti de @JsonIgnore Annotation

Pour les propriétés que vous souhaitez inclure dans votre classe Java mais que vous ne sérialisez pas en JSON, vous pouvez utiliser l'annotation @JsonIgnore pour indiquer qu'elles doivent être ignorées.

Exemple

Considérez la structure Firebase JSON suivante :

{
  "users": {
    "-Jx5vuRqItEF-7kAgVWy": {
      "handle": "puf",
      "name": "Frank van Puffelen",
      "soId": 209103
    }
  }
}
Copier après la connexion

Pour convertir ce JSON en un objet Java, définissez les éléments suivants class:

private static class User {
  private String handle;
  private String name;

  public String getHandle() { return handle; }
  public String getName() { return name; }
}
Copier après la connexion

Lors de l'ajout de l'annotation @JsonIgnoreProperties pour ignorer la propriété soId, le code devient :

@JsonIgnoreProperties({"soId"})
private static class User {
  private String handle;
  private String name;

  public String getHandle() { return handle; }
  public String getName() { return name; }
}
Copier après la connexion

Ou, pour ignorer complètement toutes les propriétés sans correspondance, utilisez l'annotation suivante :

@JsonIgnoreProperties(ignoreUnknown = true)
private static class User {
  ...
}
Copier après la connexion

Cela permet à Jackson d'ignorer les propriétés du JSON qui n'ont pas de propriétés de classe Java correspondantes.

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