Dart zu JSON Konverter
Dart-Klassen oder Flutter-Modelle einfügen. Sauberes JSON zurückbekommen.
Was das Tool macht
Wenn du gerade eine Flutter-App baust und eine Model-Klasse hast, deren toJson() du noch nicht geschrieben hast, oder du für einen Test einfach nur einen Beispiel-JSON-Body brauchst — die Map von Hand zu tippen nervt. Füg dein Dart hier ein und du bekommst gültiges JSON zurück — ohne Boilerplate, ohne Neuschreiben. Klappt mit einer einzelnen Klasse, einem ganzen models.dart oder einer Instanz, die du mit Named Args zusammengebaut hast.
Der Konverter folgt dem, wie dart:convert tatsächlich serialisiert. final-Felder kommen mit ihren Werten durch. int und double bleiben JSON-Zahlen. bool bleibt ein Boolean. DateTime wird zu einem ISO-8601-String, im gleichen Format, das DateTime.toIso8601String() ausspuckt. List<T> wird ein JSON-Array; Map<String, dynamic> wird ein JSON-Objekt. Nullable Typen (String?) geben null aus, wenn der Wert null ist, sonst den Wert selbst.
Factory Constructors, Named Constructors und fromJson/toJson-Helper werden alle erkannt — im Output landen die Daten innerhalb der Instanz. Wenn du mehrere Klassen aus einer Datei einfügst (z. B. aus einem pub.dev-Paket), wird jede Klasse zu einem Top-Level-Eintrag, und verschachtelte Instanzen werden als verschachtelte JSON-Objekte aufgeklappt. Methoden werden übersprungen. Enums werden standardmäßig mit ihrem Namen serialisiert, passend zur üblichen describeEnum-Konvention.
So nutzt du es
Drei Schritte. Gleicher Ablauf, egal ob du eine kleine Klasse oder ein komplettes models.dart einfügst.
Dart einfügen (oder Beispiel ausprobieren)
Kipp deinen Dart-Code wie er ist in den linken Editor. Eine Klassendefinition, ein Factory Constructor, mehrere Klassen oder eine Instanz mit Named Args — alles okay. Klick auf Beispiel laden, um einen realistischen Fall zu sehen.
Imports, Annotationen (@JsonSerializable(), @freezed) und Kommentare kannst du drin lassen — der Parser ignoriert, was er nicht braucht. Für mehr zur Sprache ist dart.dev/language die offizielle Referenz.
Auf Konvertieren klicken
Klick auf den grünen Konvertieren-Button. Das Tool liest das Dart, läuft durch jede Klasse und jedes Feld und erzeugt das JSON in einem Durchgang. Während es läuft, siehst du einen kurzen Ladeindikator.
JSON kopieren
Das rechte Panel füllt sich mit eingerücktem JSON. Kipp es in einen Flutter-Test, eine Mock-Response für Dio/http, einen Firestore-Seed oder deine API-Docs.
Wann es wirklich hilft
Flutter-Integration-Tests
Du hast ein Order-Modell mit verschachteltem Customer und OrderItems. Klasse einfügen, JSON bekommen, als Mock-Response im Integration-Test nutzen.
API-Payloads hochziehen
Mach aus einer CreateOrderRequest-Klasse einen JSON-Body, der direkt für Postman, curl oder einen schnellen Backend-Spike taugt — Schluss mit Tippen.
json_serializable hochziehen
Noch bevor du build_runner startest, siehst du genau, welche Form <code>toJson()</code> ausgibt — sehr hilfreich, wenn du ein neues Modell designst.
Docs synchron halten
Generier JSON-Beispiele für ein README oder eine API-Referenz direkt aus deinen Dart-Modellen, damit die Doku dem echten Code folgt.
Häufige Fragen
Kann ich mehrere Klassen gleichzeitig einfügen?
Ja — füg ruhig eine ganze Model-Datei ein. Jede Top-Level-Klasse wird zu ihrem eigenen JSON-Eintrag, verschachtelte Instanzen werden als verschachtelte Objekte aufgeklappt. Private Felder (mit Underscore-Präfix) werden auch ausgegeben, genauso wie ein normales toJson() das machen würde.
Wie geht es mit DateTime, Duration und Nullables um?
DateTime kommt als ISO-8601-String raus, so wie toIso8601String() das macht. Duration ist ein numerischer Mikrosekunden-Wert. Nullable Felder (String?) geben null aus, wenn der Wert null ist, sonst den Wert selbst.
Was ist mit List, Map und Set?
List<T> und Set<T> werden beide zu JSON-Arrays — JSON hat keinen Set-Typ, also werden die Elemente einfach gelistet. Map<String, dynamic> wird zu einem JSON-Objekt. Verschachtelte Generics (List<Map<String, Order>>) werden rekursiv aufgeklappt.
Versteht es freezed- oder json_serializable-Klassen?
Ja — die @freezed- und @JsonSerializable-Annotationen werden erkannt und die zugrundeliegenden Felder landen im JSON. Du musst build_runner vorher nicht laufen lassen; der Konverter liest die Deklaration, nicht den generierten Code.
Wie werden Enums ausgegeben?
Standardmäßig wird der Name des Enum-Werts genutzt (OrderStatus.paid → "paid"). Das passt zur üblichen Konvention und hält das JSON lesbar, ohne zusätzlichen Mapping-Code.
Wird mein Code gespeichert?
Dein Dart wird fürs Konvertieren ans Backend geschickt und nicht persistiert — wir loggen den Payload nicht. Bei sensiblem Modell-Code: vorher drüberschauen oder säubern.
Andere Tools, die du vielleicht brauchst
Dart zu JSON ist nur ein Baustein. Folgende passen gut dazu: