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
Susan Sarandonoriginal
2024-11-26 12:31:10170parcourir

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

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; }
}

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; }
}

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

@JsonIgnoreProperties(ignoreUnknown = true)
private static class User {
  ...
}

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!

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