Maison > Java > javaDidacticiel > Pourquoi est-ce que j'obtiens une erreur « Échec du rebond au type » lors de la conversion de Firebase JSON en objets Java ?

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

Patricia Arquette
Libérer: 2024-11-17 19:44:01
original
290 Les gens l'ont consulté

Why do I get a

Pourquoi rencontrez-vous le message « Échec du rebond lors de la saisie » lors de la conversion du JSON de Firebase en objets Java ?

Firebase utilise Jackson pour faciliter le sérialisation des objets Java en JSON et leur désérialisation en objets Java. Ce didacticiel explore différentes approches d'utilisation de Jackson avec Firebase.

Chargement d'utilisateurs complets

Pour charger des utilisateurs de Firebase vers Android, vous pouvez créer une classe Java reflétant la structure JSON. :

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

  // getters and toString methods
}
Copier après la connexion

Cette classe peut être utilisée avec un écouteur :

Firebase ref = new Firebase("https://stackoverflow.firebaseio.com/32108969/users");

ref.addListenerForSingleValueEvent(new ValueEventListener() {
  @Override
  public void onDataChange(DataSnapshot usersSnapshot) {
    for (DataSnapshot userSnapshot : usersSnapshot.getChildren()) {
      User user = userSnapshot.getValue(User.class);
      System.out.println(user.toString());
    }
  }

  @Override
  public void onCancelled(FirebaseError firebaseError) { }
});
Copier après la connexion

Chargement partiel des utilisateurs

Si seules des propriétés utilisateur spécifiques sont de intérêt, on peut omettre les propriétés indésirables de la classe Java. Cependant, cela peut entraîner une exception « échec de l'anti-rebond » en raison de l'incapacité de Jackson à reconnaître la propriété omise.

Pour résoudre ce problème, l'annotation @JsonIgnoreProperties peut être utilisée pour demander à Jackson d'ignorer des propriétés spécifiques :

@JsonIgnoreProperties({ "stackId" })
private static class User {
  String handle;
  String name;
}
Copier après la connexion

Alternativement, @JsonIgnoreProperties(ignoreUnknown=true) peut être utilisé pour ignorer toutes les propriétés inconnues.

Enregistrer partiellement les utilisateurs

Des méthodes pratiques peuvent être ajouté aux classes Java pour améliorer leurs fonctionnalités. Par exemple, une méthode permettant d'obtenir le nom d'affichage de l'utilisateur peut être ajoutée :

private static class User {
  String handle;
  String name;

  @JsonIgnore
  public String getDisplayName() {
    return getName() + " (" + getHandle() + ")";
  }
}
Copier après la connexion

Lors de l'enregistrement des utilisateurs sur Firebase, l'annotation @JsonIgnore doit être appliquée à la méthode getDisplayName() pour empêcher son inclusion dans le JSON. sortie.

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