Wie zu tun Serialisierung in Android
Wenn Sie interessiert sind, wo diese Serie gehen wird, überprüfen Sie unsere Serie Umriss aus:
Gson Serie Überblick
Erste Schritte mit Java-JSON Serialisierung - Deserialisierung
Mapping von verschachtelten Objekten
Mapping von Arrays und Listen von Objekten
Mapping von Karten
Mapping von Sets
Mapping von Nullwerten
Basics - Namensrichtlinien
Kraft Serialisierung von null Werten
Relax Gson mit Lenient
Spezielle Werte von Floats - Doubles
Formatierung von Daten - Benutzerdefinierte Datum / Uhrzeit Mapping
Mapping von Aufzählungen
Mapping von Rund Referenzen
Benutzerdefinierte Serialisierung für die Vereinfachung (Teil 1)
Ändern des Standard Serialisierung mit benutzerdefinierten Serialisierung (Teil 2)
Benutzerdefinierte Deserialisierung Basics
Benutzerdefinierte Instanz Creator
Benutzerdefinierte Deserialisierung für berechnete Felder
On-The-Fly-Parsing Mit Streams
Low-Level-Parsing
Speichern von Daten in Android # x27; s SharedPreferences
Wie man eine Liste der Polymorphe Objekte deserialisieren
5 Häufige Fehler - Probleme
Übersicht über Alternativen
Veröffentlichung Premium-Learning-Paket
Gson Dependency
Dieser Leitfaden wird hands-on und mit einiger Serialisierung in einer Minute. Da viele unserer Leser Android-Entwickler sind, werden wir es für Sie maßgeschneiderte, aber Gson kann in jeder Java-Umgebung verwendet werden. Bevor wir beginnen können, müssen wir in der Gson Bibliothek zu unserem Projekt ziehen. Zum Zeitpunkt des Schreibens ist die neueste Version 2.8.0. Wenn Sie Gradle verwenden, fügen Sie die folgende Zeile:
Wenn Sie Maven verwenden, können Sie die folgende Abhängigkeit hinzu:
Für die armen Jungs weder Abhängigkeitsmanagement-System verwenden, können Sie das Glas auf dem offiziellen GitHub-Repository herunterladen.
Grundlagen der Java-JSON Serialisierung
Also lassen Sie uns einige Serialisierung tun! Serialisierung im Rahmen der Gson bedeutet Abbilden ein Java-Objekt auf seine JSON Darstellung. In den nächsten paar Tutorials unsere Daten werden immer komplexer, aber jetzt werden wir mit einem sehr einfach UserSimple Objekt starten:
Das Benutzerobjekt hat vier Eigenschaften:
- Der Name des Benutzers ist ein String-Objekt
- Der E-Mail-Benutzer ist auch ein String-Objekt
- Das Alter des Benutzers ist eine ganze Zahl, was bedeutet, das Alter in Jahren gespeichert (zum Beispiel 26 und nicht der genauen Geburtstag!)
- Endlich ein boolean flag isDeveloper
Unsere Android oder Java-Anwendung benötigt ein UserSimple Objekt in seiner JSON Darstellung zu konvertieren. Unter der Annahme, wir die Mitgliedsnamen der gleichen halten, würden wir erwarten, eine solche JSON für Norman, dem Autor dieses Blog-Post:
Also mal sehen, wie wir die Umwandlung mit Gson tun können. Zunächst einmal brauchen wir ein Java-Objekt für Norman erstellen:
Um die Serialisierung zu tun, müssen wir ein Gson Objekt, welches die Umsetzung behandelt. Wir können einfach den Konstruktor verwenden:
Als nächstes müssen wir die Funktion toJson () und übergeben Sie die UserSimple Objekt aufzurufen:
Das userJson Objekt enthält den folgenden Wert:
Gson änderte sich die Reihenfolge der Eigenschaften (zu alphabetisch), aber der Inhalt ist identisch! Beachten Sie, wie Gson die Typen geachtet. String-Werte wurden in „“ gewickelt. während ganzzahlige Werte keine Umhüllung hatte. Wir haben nicht um zu Chaos mit JSON-Objekte kopieren oder einzelne Mitglieder. Ein einziger Anruf Gson war genug, um das gesamte Objekt abzubilden. Dies kommt in extrem praktisch, wenn wir mit komplexen Datenstrukturen arbeiten. Aber bevor zu tief gehen, lassen Sie uns in die andere Richtung testen. Kann Gson ein Java-Objekt aus der obigen JSON erstellen?
Grundlagen der JSON-Java Deserialisierung
Zunächst einmal brauchen wir einen String erstellen, die die oben genannten JSON enthält:
Wir änderten die Flucht „zu" Tonnen zu vermeiden“. Trotzdem funktioniert es so oder so. Der nächste Schritt ist, wie Sie wahrscheinlich schon erraten haben, eine Gson Instanz zu erstellen:
Schließlich haben wir mit fromJson von einer JSON zu einem Java-Objekt abzubilden ():
Beachten Sie, wie wir die erwartete Java-Objekt als zweiten Parameter übergeben haben. Ansonsten weiß Gson nicht, was soll es die JSON abzubilden. Es ist kein Zauberer!
Wenn wir einen Debugger und überprüfen Sie die resultierende Benutzerobjekt anhängen werde es zeigen uns, dass Gson erfolgreich alle Eigenschaften korrekt zugeordnet:
Nächste Schritte - Ausblick
In diesem Getting Started Post haben Sie die grundlegende Verwendung von Gson gesehen. Wir haben gezeigt, wie einfach es von und zu JSON-Daten abzubilden ist. Wir sind sicher, dass Sie eine Reihe von Fragen im Moment haben:
- Hat das Java-Klassen-Modell einen Konstruktor / Getter / Setter müssen?
- Können die Java-Modell Felder privat sein?
- Wie Nullwerte behandelt werden?
- Was passiert, wenn die Java-Klasse verschiedenen Mitglieds Namensgebung als die JSON hat?
- Wie man (de) Arrays / Listen von Objekten serialisiert
- Wie man (de) Serialisierung verschachtelte Objekte
- Hält Gson einen definierten Standardwert für eine Klasseneigenschaft während der Ausführung .fromJson () und es gibt keinen Wert für diese Eigenschaft in JSON?
Machen Sie es rock - genießen Codierung!
Noch nicht ein Experte? Holen Unser Gson Buch!

Mapping JSON zu Java-Objekten (und umgekehrt) ist aus den 90er Jahren. Gson ist die moderne Lösung zwischen Java und JSON automatisch mit minimalem Aufwand abzubilden.
Sie müssen nur wissen, wie es geht! Erfahren Sie jedes Detail über Gson Fähigkeiten, Konfiguration Anpassung in unserem Buch.
Unser Buch enthält alles, was Sie brauchen, um über Gson kennen. Wert auf Ihre Zeit und sparen Sie sich von endlosen Stunden der Google-Suche, um schnell Ihre Probleme zu beheben. Investieren Sie in Ihrem Wissen im Voraus und in eine saubere Lösung. Registrieren Sie sich das Gson Experte auf Ihrem Team.
Enthält eine Arbeitsmappe!