Heim > Java > javaLernprogramm > Warum erhalte ich beim Konvertieren von Firebase JSON in Java-Objekte die Fehlermeldung „Failed to bounce to type'?

Warum erhalte ich beim Konvertieren von Firebase JSON in Java-Objekte die Fehlermeldung „Failed to bounce to type'?

Patricia Arquette
Freigeben: 2024-11-17 19:44:01
Original
292 Leute haben es durchsucht

Why do I get a

Warum tritt bei der Konvertierung von JSON von Firebase in Java-Objekte die Fehlermeldung „Failed to bounce to type“ auf?

Firebase verwendet Jackson, um das zu erleichtern Serialisierung von Java-Objekten in JSON und deren Deserialisierung zurück in Java-Objekte. In diesem Tutorial werden verschiedene Ansätze zur Verwendung von Jackson mit Firebase untersucht.

Vollständige Benutzer laden

Um Benutzer von Firebase in Android zu laden, kann man eine Java-Klasse erstellen, die die JSON-Struktur widerspiegelt :

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

  // getters and toString methods
}
Nach dem Login kopieren

Diese Klasse kann mit einem Listener verwendet werden:

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) { }
});
Nach dem Login kopieren

Benutzer teilweise laden

Wenn nur bestimmte Benutzereigenschaften von sind Bei Interesse kann man die unerwünschten Eigenschaften aus der Java-Klasse weglassen. Dies kann jedoch zu einer Ausnahme „Fehler beim Entprellen des Typs“ führen, da Jackson die ausgelassene Eigenschaft nicht erkennen kann.

Um dieses Problem zu beheben, kann die Annotation @JsonIgnoreProperties verwendet werden, um Jackson anzuweisen, bestimmte Eigenschaften zu ignorieren:

@JsonIgnoreProperties({ "stackId" })
private static class User {
  String handle;
  String name;
}
Nach dem Login kopieren

Alternativ kann @JsonIgnoreProperties(ignoreUnknown=true) verwendet werden, um alle unbekannten Eigenschaften zu ignorieren.

Benutzer teilweise speichern

Bequeme Methoden können zu Java-Klassen hinzugefügt werden, um deren Funktionalität zu erweitern. Beispielsweise kann eine Methode zum Abrufen des Anzeigenamens des Benutzers hinzugefügt werden:

private static class User {
  String handle;
  String name;

  @JsonIgnore
  public String getDisplayName() {
    return getName() + " (" + getHandle() + ")";
  }
}
Nach dem Login kopieren

Beim Speichern von Benutzern in Firebase sollte die Annotation @JsonIgnore auf die Methode getDisplayName() angewendet werden, um deren Aufnahme in das JSON zu verhindern Ausgabe.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Konvertieren von Firebase JSON in Java-Objekte die Fehlermeldung „Failed to bounce to type'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage