Ugrás a tartalomhoz
100% helyi

JSON to Dart osztály

JSON minta alapján Dart osztály generálása fromJson, toJson és beágyazott modellekkel.

Bemenet
Kimenet

JSON to Dart osztály

Illessz be egy JSON mintát, és az eszköz kikövetkezteti az adatok szerkezetét, majd egy megfelelő Dart osztályt generál — olyan típust, amelyet egyébként kézzel írnál meg a Flutter modellhez. A beágyazott objektumok saját osztályokká válnak, a tömbök begépelt `List<...>` mezőkké alakulnak, és minden osztály egy elnevezett konstruktorral, egy `fromJson` gyárral és egy `toJson` metódussal érkezik.

A beállítások vezérlik a generált kód stílusát. Az "Osztály neve" beállítja az alaposztályt; a beágyazott osztályok a JSON kulcs alapján képződnek. A "Null biztonság kötelező mezőkkel" azokat a mezőket jelöli meg `required` nem nullázható típussal, amelyek minden mintában jelen vannak. A "json_serializable megjegyzések" átváltanak kézzel írt `fromJson`/`toJson` testekről a `@JsonSerializable()` és `@JsonKey` megjegyzésekre. A "Végső mezők" megváltoztatja az osztályt immutábilissá; a "copyWith generálása" hozzáadja a módosított másolat létrehozásának metódusát, és a "== és hashCode generálása" értékegyenlőséget ad.

Ha ugyanaz az objektum forma ismétlődik — például egy olyan objektumtömb, ahol minden elem ugyanazokkal a mezőkkel rendelkezik — az eszköz egy osztályt újrahasznál, és nem generál duplikátumot. Az olyan JSON kulcsok, amelyek nem érvényes Dart azonosítók, vagy ütköznek egy kulcsszóval, automatikusan átnevezésre kerülnek a Dart oldalon, miközben az eredeti kulcs megmarad a kódoláshoz és dekódoláshoz.

Minden helyileg az böngészőben futtatódik: a JSON minta soha nem kerül sehova feltöltésre, ami fontos, ha valós felhasználói adatokat vagy egy belső API válasz alakját tartalmazza. Másold az osztályt, töltsd le .txt fájlként, vagy küldd vissza a kimenetet a bemenetbe az egyik beágyazott rész további konvertálásához.

Gyakori kérdések

Hogyan kezelendik a beágyazott objektumokat és tömböket?
Minden beágyazott objektum egy olyan Dart osztállyá válik, amely az azt bevezető mező neve alapján van elnevezve, és az azonos alakú objektumokból álló tömb egy begépelt List<YourClass> lesz. Ha ugyanaz az alakja többször jelenik meg, az eszköz egyetlen osztályt használ ismét, ahelyett, hogy duplikátumot generálna minden előforduláshoz.
Mit valósítana meg a "Null biztonság kötelező mezőkkel" beállítás?
Ha be van kapcsolva, az eszköz által minden mintában látott mező nem nullázható típust kap és egy `required` konstruktor paramétert; a néha hiányzó vagy nullázható mező nullázható típust kap és nincs `required` kulcsszó. A kikapcsolása minden mezőt nullázhatóvá és opcionálissá tesz, amely nagyobb toleranciát biztosít az olyan API válaszokkal szemben, amelyek változnak.
Szükség van a json_serializable csomagra?
Csak akkor, ha bekapcsolod a "json_serializable megjegyzések" beállítást, amely `@JsonSerializable()`/`@JsonKey` megjegyzéseket és egy rész direktívát bocsát ki, amely egy build_runner által generált `.g.dart` fájlt vár. Hagyja ki és az eszköz egyszerű, függőség nélküli fromJson/toJson metódusokat ír helyette.
Helyesen tudja-e megállapítani egy numerikus mező típusát?
Igen. Az olyan mező, amely mindig egész szám, int lesz; ha bármilyen minta érték tizedesvesszővel rendelkezik, az egész mező duplexé lesz, így egyetlen érték sem csonkítódna.
A JSON minta valahova feltöltésre kerül?
Nem. Az osztály teljes egészében az böngészőben jön létre — a JSON minta soha nem hagyja el az eszközt.