JSON na klasę Dart
Konwertuj próbkę JSON na klasę Dart z fromJson, toJson i zagnieżdżonymi modelami.
JSON na klasę Dart
Wklej próbkę JSON i to narzędzie wnioskuje kształt danych i generuje pasującą klasę Dart — taką, którą w przeciwnym razie musiałbyś ręcznie napisać dla modelu Flutter. Obiekty zagnieżdżone staną się własnymi klasami, pola typu `List<...>` staną się typowanymi polami, a każda klasa ma nazwany konstruktor, fabrykę `fromJson` i metodę `toJson`, dzięki czemu wynik można bezpośrednio wstawić do projektu Flutter lub Dart.
Opcje kontrolują styl wygenerowanego kodu. "Nazwa klasy" ustawia klasę root, zagnieżdżone klasy są nazwane po kluczu JSON, który je wprowadził. "Bezpieczeństwo null z wymaganymi polami" oznacza pola, które występują w każdej próbce jako `required` z typem bez wartości null, oraz pola, które czasami brakuje lub mają wartość null, jako nullable i opcjonalne — wyłącz to, aby każde pole było nullable, co jest bardziej tolerancyjne dla niespójnych odpowiedzi API. "Adnotacje json_serializable" przełącza się z ręcznie napisanych treści `fromJson`/`toJson` na adnotacje `@JsonSerializable()` i `@JsonKey`, które delegują do wygenerowanego pliku części `.g.dart` dla projektów, które już używają tego pakietu i build_runner. "Pola finalne" czyni klasę niezmienną, "Generuj copyWith" dodaje metodę tworzenia zmodyfikowanej kopii bez mutacji oryginału, a "Generuj == i hashCode" dodaje równość wartości, aby dwie instancje z tymi samymi wartościami pól porównywały się jako równe. "Wcięcie" przełącza wygenerowany kod między 2 i 4 spacjami.
Kiedy ten sam kształt obiektu się powtarza — na przykład tablica elementów, które wszystkie mają te same pola — narzędzie ponownie używa jednej klasy zamiast generowania duplikatu dla każdego wystąpienia, a pole brakujące tylko u niektórych elementów tablicy jest prawidłowo wnioskowane jako opcjonalne, a nie wymagane. Klucze JSON, które nie są prawidłowymi identyfikatorami Dart, używają innego nazewnictwa lub kolidują z słowem kluczowym lub wygenerowaną nazwą metody (taką jak `copyWith` lub `hashCode`), są automatycznie zmieniane po stronie Dart, podczas gdy oryginalny klucz jest zachowywany do kodowania i dekodowania.
Wszystko działa lokalnie w Twojej przeglądarce: próbka JSON nigdy nie jest nigdzie przesyłana, co ma znaczenie, jeśli zawiera rzeczywiste dane użytkownika lub kształt odpowiedzi wewnętrznego API. Skopiuj klasę, pobierz ją jako plik .txt lub wyślij dane wyjściowe z powrotem do wejścia, aby móc dalej konwertować jeden zagnieżdżony element.