Dart till JSON-konverterare
Klistra in Dart-klasser eller Flutter-modeller. Få ren JSON tillbaka.
Vad verktyget gör
Bygger du en Flutter-app och har en modellklass vars toJson() du inte skrivit än, eller behöver du bara en exempel-JSON-body till ett test? Att handknåpa map:en är tråkigt. Klistra in din Dart här och du får giltig JSON tillbaka — utan boilerplate, utan att skriva om. Funkar med en enda klass, en komplett models.dart eller en instans du byggt med named arguments.
Konverteraren följer hur dart:convert faktiskt serialiserar. final-fält kommer igenom med sina värden. int och double förblir JSON-tal. bool förblir en boolean. DateTime blir en ISO-8601-sträng, samma format som DateTime.toIso8601String() producerar. List<T> blir en JSON-array; Map<String, dynamic> blir ett JSON-objekt. Nullable-typer (String?) skickar ut null när värdet är null, annars själva värdet.
Factory constructors, named constructors och fromJson/toJson-helpers känns alla igen — det som hamnar i utdata är datan inuti instansen. Klistrar du in flera klasser från en fil (säg, hämtade från ett paket på pub.dev) blir varje klass en egen top-level-post och nästade instanser fälls ut som nästade JSON-objekt. Metoder hoppas över. Enums serialiseras som standard till sitt namn, i linje med den vanliga describeEnum-konventionen.
Så använder du det
Tre steg. Samma flöde oavsett om du klistrar in en liten klass eller hela models.dart.
Klistra in din Dart (eller testa exemplet)
Släng in Dart-koden som den är i editorn till vänster. En klassdefinition, en factory constructor, flera klasser, eller en instans med named args — allt funkar. Klicka på Ladda exempel för att se ett realistiskt fall.
Behåll gärna imports, annoteringar (@JsonSerializable(), @freezed) och kommentarer — parsern ignorerar det den inte behöver. För djupare bakgrund om språket är dart.dev/language den officiella referensen.
Tryck Konvertera
Klicka på den gröna Konvertera-knappen. Verktyget läser Darten, går igenom varje klass och fält och producerar JSON i en enda pass. En kort laddningsindikator visas medan det körs.
Kopiera JSON:en
Högerpanelen fylls med indenterad JSON. Släng in den i ett Flutter-test, en mock response för Dio/http, en Firestore-seed eller i dina API-docs.
När det verkligen kommer till användning
Flutter-integrationstester
Du har en Order-modell med nästad Customer och OrderItems. Klistra in klassen, få JSON:en, använd som mock response i ditt integrationstest.
Bootstrappa API-payloads
Gör om en CreateOrderRequest-klass till en JSON-body redo för Postman, curl eller en snabb backend-spike — slut på att skriva det för hand.
Bootstrappa json_serializable
Innan du kör build_runner kan du se exakt vilken form <code>toJson()</code> kommer att spotta ut — användbart när du designar en ny modell.
Håll docsen i synk
Generera JSON-samples till en README eller API-referens direkt från dina Dart-modeller så dokumentationen följer den riktiga koden.
Vanliga frågor
Kan jag klistra in flera klasser samtidigt?
Ja — klistra gärna in en hel models-fil. Varje top-level-klass blir sin egen JSON-post, och nästade instanser fälls ut som nästade objekt. Privata fält (med underscore-prefix) skickas också ut, precis som en vanlig toJson() brukar göra.
Hur hanteras DateTime, Duration och nullables?
DateTime kommer ut som ISO-8601-sträng enligt toIso8601String(). Duration är ett numeriskt mikrosekund-värde. Nullable-fält (String?) skickar ut null när värdet är null, annars själva värdet.
Och List, Map och Set?
List<T> och Set<T> blir båda JSON-arrayer — JSON saknar set-typ, så medlemmarna bara listas. Map<String, dynamic> blir ett JSON-objekt. Nästade generics (List<Map<String, Order>>) fälls ut rekursivt.
Förstår den freezed- eller json_serializable-klasser?
Ja — annoteringarna @freezed och @JsonSerializable känns igen och de underliggande fälten dras in i JSON:en. Du behöver inte köra build_runner först; konverteraren läser deklarationen, inte den genererade koden.
Hur skickas enums ut?
Som standard används enum-värdets namn (OrderStatus.paid → "paid"). Det matchar den vanliga konventionen och håller JSON:en läsbar utan extra mapping-kod.
Sparas min kod?
Din Dart skickas till backenden för konvertering och sparas inte — vi loggar inte payloaden. För känslig modellkod: rensa eller se över innan du klistrar in.
Andra verktyg du kan behöva
Dart till JSON är bara en pusselbit. Dessa passar bra ihop med det: