Dart links einfügen und auf "Konvertieren" klicken — wir machen JSON drausDart-Code einfügen

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.

1

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.

2

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.

3

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: