json_serializable in der Praxis
Generieren Sie die Serialisierung von Modellen automatisch
json_serializable in der Praxis ist eine kostenlose Dart Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Dart Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.
Das Problem mit JSON-Boilerplate
fromJson und toJson von Hand zu schreiben, ist mühsam und fehleranfällig. Das Package json_serializable generiert beide Methoden anhand eines Modells für Sie. 📦
Die Packages hinzufügen
Sie benötigen json_annotation als normale Abhängigkeit sowie json_serializable und build_runner als Entwicklungsabhängigkeiten für die Generierung.
dependencies:
json_annotation: ^4.9.0Die Klasse annotieren
Markieren Sie Ihr Modell mit @JsonSerializable. Diese Annotation weist den Generator an, Serialisierungscode für diese Klasse zu erzeugen.
@JsonSerializable()
class User {
final String name;
User(this.name);
}Die Part-Datei deklarieren
Fügen Sie eine part-Direktive hinzu, damit Ihre Datei die generierten Hilfsmethoden einbinden kann. Ihr Name entspricht dem Namen Ihrer Datei mit dem Suffix .g.dart.
part 'user.g.dart';fromJson anbinden
Fügen Sie eine Factory hinzu, die den Aufruf an die generierte Funktion weiterleitet. Der Helper _$UserFromJson wird vom Builder für Sie erstellt.
factory User.fromJson(Map<String, dynamic> j) =>
_$UserFromJson(j);toJson anbinden
Fügen Sie eine Methode hinzu, die den generierten Writer aufruft. Der Helper _$UserToJson wandelt Ihr Objekt wieder in eine JSON-Map um.
Map<String, dynamic> toJson() => _$UserToJson(this);Den Code generieren
Führen Sie build_runner einmal aus. Daraufhin wird die Datei user.g.dart mit beiden vollständig implementierten Hilfsfunktionen erstellt und kann sofort verwendet werden.
dart run build_runner buildEinen JSON-Schlüssel umbenennen
Wenn sich das API-Feld von Ihrem Dart-Namen unterscheidet, verwenden Sie @JsonKey, um es zuzuordnen. Ihr Code bleibt sauber, während das JSON dem Server entspricht.
@JsonKey(name: 'full_name')
final String fullName;Einen Standardwert angeben
Sie können für fehlende Felder einen Ersatzwert angeben. Die Option defaultValue setzt einen Wert, wenn der Schlüssel im JSON fehlt.
@JsonKey(defaultValue: 0)
final int score;Verschachtelte Modelle funktionieren sofort
Wenn ein Feld zu einer anderen @JsonSerializable-Klasse gehört, serialisiert der Generator es rekursiv. Für verschachtelte Objekte ist kein zusätzlicher Aufwand erforderlich.
Wie normales Dart verwenden
Nach der Generierung analysieren und kodieren Sie Daten mit einfachen Methodenaufrufen. Die generierten helpers bleiben verborgen, sodass Ihre Aufrufstellen natürlich lesbar sind.
final u = User.fromJson(data);
final back = u.toJson();Kurzer Check
Welche Annotation markiert eine Klasse für die JSON-Codegenerierung?
Zusammenfassung
Annotieren Sie mit @JsonSerializable, binden Sie fromJson und toJson an und führen Sie anschließend build_runner aus. Verwenden Sie @JsonKey, um Feldnamen und Standardwerte zuzuordnen. 🎉
Lerne Dart mit einem KI-Tutor — kostenlos
Schreibe und führe echten Code in deinem Browser aus, bekomme sofortige Hilfe von einem 24/7 KI-Tutor und setze dein Lernen im Web oder in der App fort.
- Kurse
- 30
- Lektionen
- 120
Häufig gestellte Fragen
Ist die Lektion „json_serializable in der Praxis“ kostenlos?
Ja — der vollständige Text von „json_serializable in der Praxis“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Dart Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Dart Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „json_serializable in der Praxis“?
Generieren Sie die Serialisierung von Modellen automatisch Du übst Dart Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Dart Academy zu starten?
Keine Vorkenntnisse erforderlich. Dart Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.
Wie lange dauert die Lektion „json_serializable in der Praxis“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Dart Academy-Lektion Code schreiben und ausführen?
Ja. Jede Dart Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Integrierte Annotationen: override, deprecated
- Eigene Annotationen schreiben
- Codegenerierung mit build_runner
- json_serializable in der Praxis