JSON-in-Dart-Konverter
Erstellen Sie aus einem JSON-Objekt oder mehreren Objektbeispielen unabhängige Dart-Modellklassen. Der Konverter wertet alle Elemente eines Arrays aus, erzeugt verschachtelte Klassen, behält die ursprünglichen JSON-Schlüssel bei und leitet nullsichere Feldtypen samt factory-Konstruktor fromJson ab. Optional ergänzt er toJson-Methoden für eine Ausgabe, die mit jsonEncode kompatibel ist. Beispiel und generierter Code bleiben im Browser und werden weder hochgeladen noch in die URL geschrieben.
So funktioniert es
-
1
Aussagekräftiges Beispiel einfügen
Verwenden Sie ein JSON-Objekt oder ein Array aus Objekten. Mehrere Elemente machen fehlende, nullable und unterschiedlich typisierte Felder sichtbar.
-
2
Dart-Optionen festlegen
Benennen Sie die Root-Klasse, legen Sie bei Bedarf alle Felder als nullable an und wählen Sie, ob toJson-Methoden erzeugt werden.
-
3
Prüfen und exportieren
Kontrollieren Sie die abgeleiteten Klassen und kopieren Sie den Code oder laden Sie eine lokale models.dart-Datei herunter.
So wird JSON zu nullsicheren Dart-Modellen
Die offizielle Dokumentation zu dart:convert erklärt, dass jsonDecode() JSON-kompatible Werte wie Zahlen, Zeichenketten, boolesche Werte, null, Listen und Maps mit String-Schlüsseln erzeugt. Eine Modellklasse lässt sich nicht unmittelbar als JSON codieren, jsonEncode() kann jedoch ihre toJson()-Methode aufrufen. Dieser Konverter erzeugt dieses manuelle Serialisierungsmuster ohne json_serializable-Annotationen oder zusätzliche Pakete.
Enthält ein Beispiel einen Benutzer mit verschachtelter Adresse, erhält die erzeugte Klasse User final-Felder und einen Konstruktor mit benannten Parametern. User.fromJson(Map<String, Object?> json) castet skalare Werte und ruft für das verschachtelte Objekt UserAddress.fromJson() auf. Fehlt address in einem der Beispiele oder ist es null, wird der Typ zu UserAddress?; die Factory prüft den Wert vor dem Erzeugen der Instanz. Ist toJson aktiviert, werden verschachtelte Modelle rekursiv in Maps umgewandelt, die jsonEncode() verarbeiten kann.
| Beobachtung im JSON | Erzeugter Dart-Typ |
|---|---|
| Ganze Zahl | int |
| Dezimalzahl | double |
| Ganze und dezimale Werte | num |
| Text | String |
| Boolescher Wert | bool |
| Verschachteltes Objekt | Erzeugte Modellklasse |
| Einheitliches Array | List<T> |
| Leeres oder uneinheitliches verschachteltes Array | List<Object?> |
| Nur null oder widersprüchliche Werte | Object? |
Der Konverter untersucht jedes Objekt eines Root-Arrays und verlässt sich nicht nur auf das erste Element. Ein Feld wird nullable, sobald es in einem Element fehlt oder ausdrücklich null ist. Sie können auch alle Felder nullable machen, wenn die reale API weniger vorhersehbar ist als das Beispiel. Der Dart-Leitfaden zur Nullsicherheit weist darauf hin, dass Typen standardmäßig nicht nullable sind und ? benötigen, um null anzunehmen.
Bezeichner und Grenzen der Typableitung
JSON-Schlüssel müssen keine gültigen Dart-Member sein. Satzzeichen werden entfernt, Wörter in lowerCamelCase umgewandelt, reservierte Schlüsselwörter erhalten ein sicheres Suffix und Kollisionen reproduzierbare Ziffernsuffixe. Der ursprüngliche Schlüssel bleibt in json['original-key'] und in der toJson()-Map unverändert. Namen verschachtelter Klassen beziehen den vollständigen Pfad ein, damit unabhängige Adressobjekte nicht versehentlich zu einer Klasse verschmelzen.
Ein einzelnes Beispiel beweist keinen API-Vertrag. JSON-Strings sind nicht automatisch Datumswerte, UUIDs oder Enums; ein leeres Array verrät keinen Elementtyp. Doppelte Membernamen lassen sich ebenfalls nicht verlustfrei hin und zurück übertragen, da JSON-Parser häufig nur den letzten Wert behalten. Prüfen Sie die erzeugten Modelle vor dem Produktiveinsatz anhand der API-Dokumentation oder des Schemas. Begrenzungen für Eingabe, Verschachtelung, Deklarationen und Ausgabe halten die Arbeit im Browser kontrollierbar.
Häufig gestellte Fragen
Nein. Parsen, Typableitung, Codeerzeugung, Kopieren und Herunterladen erfolgen im Browser. JSON und Dart-Code werden weder über unsere Server gesendet noch in die URL geschrieben.
Ja. Flutter verwendet Dart, daher lassen sich die unabhängigen Klassen in einem Flutter-Projekt einsetzen. Vergleichen Sie die abgeleiteten Typen zuvor mit dem tatsächlichen API-Vertrag.
Nein. Es erzeugt manuelle fromJson- und optionale toJson-Methoden, ohne Paket oder build_runner zu benötigen.
Ein Feld wird nullable, wenn es als null vorkommt oder in einem Beispiel fehlt. Falls das Beispiel nicht repräsentativ ist, können Sie sämtliche Felder nullable erzeugen.
Nein. Das Ergebnis bildet nur die beobachteten Werte ab. Verwenden Sie mehrere Objektbeispiele und vergleichen Sie es mit Schema oder Dokumentation des Anbieters.
Verwandte Tools
ASCII-Tabelle Referenz
Vollständige ASCII-Tabelle von 0 bis 127 mit Dezimal-, Hex-, Oktal-, Binär- und numerischer HTML-Zeichenreferenz für jedes Zeichen, einschließlich Steuerzeichen wie NUL, LF und DEL.
HTML-Zeichenreferenz
Durchsuchbare Liste von HTML-Entitäten, ihren benannten und numerischen Codes sowie eine Ein-Klick-Kopie für Sonderzeichen und Symbole.
Farbrad-Explorer
Erforschen Sie das Farbrad interaktiv. Rotieren Sie Harmonien, vergleichen Sie HSL mit RYB, erkennen Sie komplementäre und triadische Paare in Echtzeit.
Referenz für Tastenkombinationen
Durchsuchen Sie dokumentierte Standardkürzel für VS Code, Chrome und Bash mit GNU Readline unter macOS, Windows und Linux.
Zufallsbuchstaben-Generator
Erzeugen Sie zufällige A-Z-Buchstaben. Wählen Sie Anzahl, Großschreibung, Kleinschreibung oder gemischte Schreibweise für Spiele, Aufgaben und Unterricht.
HTML-Formatter
Formatieren Sie HTML lokal im Browser mit zwei oder vier Leerzeichen Einrückung. HTML wird weder hochgeladen noch validiert.
Tool in anderen Sprachen verfügbar
- Konverter JSON ke Dart [ID]
- Trình chuyển JSON sang Dart [VI]
- Conversor de JSON a Dart [ES]
- Convertisseur JSON vers Dart [FR]
- JSON to Dart 변환기 [KO]
- JSON-naar-Dart-converter [NL]
- JSON till Dart-konverterare [SV]
- JSONからDartへの変換ツール [JA]
- ตัวแปลง JSON เป็น Dart [TH]
- محول JSON إلى Dart [AR]
- Konwerter JSON na Dart [PL]
- Conversor de JSON para Dart [PT]
- Convertitore da JSON a Dart [IT]
- Конвертер JSON в Dart [RU]
- JSON'dan Dart'a Dönüştürücü [TR]
- JSON 转 Dart 工具 [ZH]
- JSON to Dart Converter [EN]