WEBVTT

00:00.110 --> 00:00.970
Willkommen zurück.

00:00.980 --> 00:07.910
In diesem Video erfahren wir etwas über nachrüstbare Json-Konverter. Nachrüstbare Json-Konverter wie Json und Mochi

00:07.910 --> 00:16.130
spielen eine entscheidende Rolle bei der Erstellung von Http-Anfragen und der Verarbeitung von Json-Antworten in Android-Anwendungen.

00:16.130 --> 00:23.210
Der Hauptzweck der Verwendung solcher Konverter ist die automatische Serialisierung und Deserialisierung.

00:23.210 --> 00:27.740
Erfahren Sie mehr über die Serialisierung und Deserialisierung der Serialisierung.

00:27.740 --> 00:35.420
Wenn Sie Daten an eine Web-API senden, müssen Sie häufig komplexe Datenstrukturen wie Objekte oder Listen in das Json-Format

00:35.420 --> 00:37.340
konvertieren.

00:37.340 --> 00:40.040
Json-Konverter wie Json oder mochi.

00:40.070 --> 00:47.060
Automatisieren Sie diesen Prozess, indem Sie native Kotlin- oder Java-Objekte direkt als Anfragekörper übergeben.

00:47.060 --> 00:55.100
Retrofit wandelt diese Objekte automatisch in Json um, bevor es diese Anfragen zur Serialisierung sendet.

00:55.100 --> 01:03.780
Wenn Sie Json-Antworten von der API erhalten, müssen Sie die Json-Daten parsen und in Ihrer Anwendung in verwendbare

01:03.780 --> 01:05.700
Objekte umwandeln.

01:05.700 --> 01:14.250
Json-Konverter übernehmen diesen Prozess, indem sie Json-Daten auf entsprechende Kotlin- oder Java-Objekte abbilden, was den Prozess wesentlich

01:14.250 --> 01:17.400
einfacher und weniger fehleranfällig macht.

01:17.430 --> 01:25.830
Um hinzuzufügen, werden die Json-Nachrüstungskonverter auf den Platz Github zurückgehen. io Schrägstrich Retrofit und klicken Sie auf Download scrollen

01:25.830 --> 01:30.690
Sie nach oben und Sie können sehen, dies sind die Konverter.

01:30.690 --> 01:42.450
Ich kopiere diese Abhängigkeit und gehe zum Projekt Build. gradle Und hier fügen Sie die Implementierung innerhalb dieser Klammern ein und hier

01:42.450 --> 01:54.780
muss ich die genaue Version von retrofit 2 angeben. 9. 0 sinken jetzt und Glückwunsch.

01:54.780 --> 01:59.010
Wir haben den Json-Konverter zu unserer Nachrüstungsbibliothek hinzugefügt.

01:59.010 --> 02:07.290
Jetzt können wir es hier in der Ergebnismodellklasse verwenden und erfahren, warum wir es zum Serialisieren und Deserialisieren von Objekten verwenden

02:07.320 --> 02:08.220
müssen.

02:08.220 --> 02:16.770
Ich beginne mit dem ersten Objekt, und übrigens verwende ich hier Integer als Objekt, nicht als primitive

02:16.770 --> 02:18.150
Daten.

02:18.150 --> 02:24.540
Ich beginne mit der Annotation serialisierter Namen und füge expose hinzu.

02:24.570 --> 02:28.530
Diese Anmerkungen stammen aus der Json-Bibliothek.

02:28.530 --> 02:37.950
Diese Annotationen werden verwendet, um die Serialisierung und Deserialisierung von Json-Daten anzupassen, wenn Sie mit Json als Json-Konverter

02:37.950 --> 02:45.900
arbeiten. Diese Annotationen ermöglichen es Ihnen, das Mapping zwischen Ihren Kotlin- oder Java-Objekten und den Json-Schlüsseln

02:45.900 --> 02:55.470
in der API-Antwort zu steuern, der serialisierte Name ist eine Annotation, die von Json und Retrofit bereitgestellt wird.

02:55.500 --> 03:03.660
Es wird verwendet, um den Namen des Json-Schlüssels anzugeben und entspricht einem bestimmten Feld oder einer Eigenschaft in Ihrer Kotlin-

03:03.660 --> 03:05.250
oder Java-Klasse.

03:05.250 --> 03:13.200
Diese Annotation ist besonders nützlich, wenn die Variablennamen in Ihrer Klasse von den Json-Schlüsseln in der API-Antwort

03:13.200 --> 03:14.700
abweichen.

03:14.700 --> 03:23.400
Es ermöglicht Ihnen, explizit zuzuordnen Klasse Eigenschaften zu Json-Schlüssel, indem Sie serialisierten Namen hinzufügen, können Sie sicherstellen,

03:23.400 --> 03:32.370
dass die Json korrekt mit den Json-Schlüssel mit der entsprechenden Klasse Eigenschaft während der Serialisierung assoziiert.

03:32.370 --> 03:44.280
Wenn Sie hier den genauen Namen des Feldes Seite genau wie in der Antwort als in der Json-Antwort verwenden.

03:44.280 --> 03:52.620
Es besteht also keine Notwendigkeit, diese Anmerkung zu verwenden, aber wenn Sie einen Feldnamen verwenden, der sich von dem der Antwort unterscheidet,

03:52.620 --> 03:54.540
können wir ihn verwenden.

03:54.540 --> 04:04.290
So unterscheidet sich z. B. der Seitenname oder die Seitennummer von diesem Feld in der Antwort.

04:04.290 --> 04:15.150
Daher werde ich dieses Feld in der Antwort auf dieses Feld in der Objektklasse abbilden, indem ich die Annotation add serialized

04:15.180 --> 04:25.020
name verwende, und hier muss ich den Namen des Feldes in der Antwort genau wie die Antwort angeben.

04:25.020 --> 04:34.530
Die Seite ist also ähnlich wie in der Antwort, hier mappe ich, ich sage, dass das Seitennummernfeld dem

04:34.530 --> 04:42.600
Seitenfeld in der Antwort entspricht, wenn Sie es als Feld in der Antwort benennen.

04:42.600 --> 04:49.620
Es besteht also keine Notwendigkeit, eine Annotation mit serialisiertem Namen zu verwenden, aber ich bevorzuge die Verwendung einer Annotation mit serialisiertem

04:49.620 --> 04:51.990
Namen, um die korrekte Zuordnung zu gewährleisten.

04:52.020 --> 04:59.760
Die Annotation expose ist eine von Json bereitgestellte Annotation, die jedoch nicht direkt von Retrofit verwendet wird.

04:59.950 --> 05:09.730
Es wird verwendet, um anzugeben, welche Felder bei der Serialisierung und Deserialisierung von Json-Objekten standardmäßig ein- oder ausgeschlossen

05:09.760 --> 05:11.650
werden sollen.

05:11.680 --> 05:16.510
Json umfasst alle Felder bei der Serialisierung und Deserialisierung.

05:16.510 --> 05:26.440
Wenn Sie jedoch ein Feld mit einer expose-Anmerkung versehen, steuern Sie mit Json, ob dieses Feld einbezogen

05:26.440 --> 05:28.960
oder ausgeschlossen wird.

05:28.990 --> 05:33.660
Json builder und schließen Felder ohne expose annotation Methode aus.

05:33.670 --> 05:41.710
Diese Anmerkung wird häufig aus Sicherheits- oder Datenschutzgründen verwendet, um zu verhindern, dass bestimmte Felder in die Json-Ausgabe

05:41.710 --> 05:45.810
aufgenommen oder von der Serialisierung ausgeschlossen werden.

05:45.820 --> 05:52.060
In diesem Beispiel schließe ich diese Seite in die Serialisierung oder Deserialisierung ein.

05:52.060 --> 05:59.780
Gehen wir also zu den anderen Feldern über, und hier füge ich den serialisierten Namen und die Gesamtzahl der Seiten hinzu.

05:59.780 --> 06:03.530
Lassen Sie uns die Antwort aufrufen und ich werde sie hierher kopieren.

06:03.530 --> 06:10.460
Die Gesamtseiten können Sie sehen, und ich kopiere sie und füge sie ein, weil Groß- und Kleinschreibung zu beachten sind und Gesamtseiten nicht

06:10.460 --> 06:11.960
gleich Gesamtseiten sind.

06:11.960 --> 06:16.070
Ich sollte also die Annotation serialized name verwenden.

06:16.070 --> 06:17.570
Außerdem werde ich Exposé verwenden.

06:17.570 --> 06:24.800
Das dritte Feld ist dann der serialisierte Name und die Gesamtergebnisse, die ich kopiere.

06:24.800 --> 06:25.910
Gehen Sie hierher.

06:25.940 --> 06:31.760
Die Gesamtergebnisse werden aufgedeckt und das letzte Feld lautet.

06:33.660 --> 06:34.480
Ergebnisse.

06:34.500 --> 06:37.410
Kopieren Sie es und fügen Sie die Freilegung hinzu.

06:37.410 --> 06:46.320
In diesem Video lernen wir also die Konverter kennen und erfahren, wie diese Anmerkungen funktionieren und warum wir sie verwenden.

06:46.320 --> 06:49.710
Und wir haben etwas über Serialisierung und Deserialisierung gelernt.
