JSON a classe Dart
Converti un campione JSON in una classe Dart con fromJson, toJson e modelli annidati.
JSON a classe Dart
Incolla un campione JSON e questo strumento deduce la forma dei dati e genera una classe Dart corrispondente, del tipo che altrimenti scriveresti manualmente per un modello Flutter. Gli oggetti annidati diventano le loro classi, gli array diventano campi `List<...>` tipizzati, e ogni classe include un costruttore denominato, una factory `fromJson` e un metodo `toJson`, così il risultato si inserisce direttamente in un progetto Flutter o Dart.
Le opzioni controllano lo stile del codice generato. "Nome della classe" imposta la classe radice; le classi annidate sono denominate in base alla chiave JSON che le ha introdotte. "Null safety con campi obbligatori" contrassegna i campi presenti in ogni campione come `required` con un tipo non nullable, e i campi talvolta mancanti o null come nullable e opzionali; disattivalo per rendere ogni campo nullable. "Annotazioni json_serializable" passa da corpi `fromJson`/`toJson` scritti a mano ad annotazioni `@JsonSerializable()` e `@JsonKey` che delegano a un file `.g.dart` generato, per progetti che già utilizzano quel pacchetto e build_runner. "Campi final" rende la classe immutabile; "Genera copyWith" aggiunge un metodo per creare una copia modificata senza mutare l'originale, e "Genera == e hashCode" aggiunge uguaglianza di valore in modo che due istanze con gli stessi valori di campo siano uguali. "Indentazione" alterna il codice generato tra 2 e 4 spazi.
Quando la stessa forma di oggetto si ripete (un array di elementi che hanno tutti gli stessi campi, ad esempio), lo strumento riutilizza una classe invece di generare un duplicato per ogni occorrenza, e un campo mancante solo da alcune voci in un array viene correttamente dedotto come opzionale anziché obbligatorio. Le chiavi JSON che non sono identificatori Dart validi, utilizzano maiuscole diverse o collidono con una parola chiave o un nome di metodo generato (come `copyWith` o `hashCode`) vengono automaticamente rinominate sul lato Dart mentre la chiave originale viene conservata per la codifica e la decodifica.
Tutto viene eseguito localmente nel tuo browser: nessun campione JSON viene mai caricato da nessuna parte, il che è importante se contiene dati utente reali o la forma di risposta di un'API interna. Copia la classe, scaricala come file .txt o rimanda l'output all'input per convertire un altro pezzo annidato.