Dart Academy · Lektion

json_serializable in der Praxis

Generieren Sie die Serialisierung von Modellen automatisch

Lektion 4 von 413 Schritte

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.0

Die 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 build

Einen 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. 🎉

Kostenlos starten

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

  1. Integrierte Annotationen: override, deprecated
  2. Eigene Annotationen schreiben
  3. Codegenerierung mit build_runner
  4. json_serializable in der Praxis
← Zurück zu Dart Academy