0Pricing
Dart Academy · Lezione

json_serializable in pratica

Generare automaticamente la serializzazione dei modelli

json_serializable in pratica è una lezione Dart Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Dart Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Dart Academy include 4 lezioni in totale.

Il problema del codice ripetitivo per JSON

Scrivere manualmente fromJson e toJson è noioso e soggetto a errori. Il package json_serializable li genera entrambi a partire da un modello. 📦

Aggiungere i package

Serve json_annotation come dipendenza normale, oltre a json_serializable e build_runner come dipendenze di sviluppo per la generazione.

dependencies:
  json_annotation: ^4.9.0

Annotare la classe

Si contrassegna il modello con @JsonSerializable. Questa annotazione indica al generatore di produrre il codice di serializzazione per la classe.

@JsonSerializable()
class User {
  final String name;
  User(this.name);
}

Dichiarare il file part

Si aggiunge una direttiva part per includere nel file gli helper generati. Il nome rispecchia quello del file, con il suffisso .g.dart.

part 'user.g.dart';

Collegare fromJson

Si aggiunge una factory che inoltra la chiamata alla funzione generata. L'helper _$UserFromJson viene creato automaticamente dal builder.

factory User.fromJson(Map<String, dynamic> j) =>
    _$UserFromJson(j);

Collegare toJson

Si aggiunge un metodo che chiama il writer generato. L'helper _$UserToJson riconverte l'oggetto in una mappa JSON.

Map<String, dynamic> toJson() => _$UserToJson(this);

Generare il codice

Si esegue build_runner una volta e viene creato il file user.g.dart, con entrambe le funzioni helper completamente implementate e pronte all'uso.

dart run build_runner build

Rinominare una chiave JSON

Quando il campo dell'API ha un nome diverso da quello Dart, si usa @JsonKey per associarlo. Il codice resta pulito mentre il JSON corrisponde al server.

@JsonKey(name: 'full_name')
final String fullName;

Fornire un valore predefinito

È possibile specificare un valore di riserva per i campi mancanti. L'opzione defaultValue inserisce un valore quando la chiave è assente dal JSON.

@JsonKey(defaultValue: 0)
final int score;

I modelli annidati funzionano automaticamente

Se un campo è un'altra classe @JsonSerializable, il generatore la serializza ricorsivamente. Gli oggetti annidati non richiedono alcun lavoro aggiuntivo.

Usarlo come normale Dart

Una volta generato il codice, si esegue il parsing e la codifica con normali chiamate a metodi. Gli helper generati restano nascosti, quindi i punti in cui vengono chiamati risultano naturali da leggere.

final u = User.fromJson(data);
final back = u.toJson();

Verifica rapida

Quale annotazione contrassegna una classe per la generazione del codice JSON?

Riepilogo

Si annota la classe con @JsonSerializable, si collegano fromJson e toJson, quindi si esegue build_runner. Si usa @JsonKey per associare i nomi dei campi e i valori predefiniti. 🎉

Domande Frequenti

La lezione «json_serializable in pratica» è gratuita?

Sì — il testo completo di «json_serializable in pratica» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Dart Academy, passa a CoddyKit PRO. Il corso Dart Academy include 4 lezioni in totale.

Cosa imparerò in «json_serializable in pratica»?

Generare automaticamente la serializzazione dei modelli Eserciti Dart Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Dart Academy?

Non è richiesta alcuna esperienza precedente. Dart Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «json_serializable in pratica»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Dart Academy?

Sì. Ogni lezione Dart Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Annotazioni integrate: override, deprecated
  2. Scrivere annotazioni personalizzate
  3. Generazione del codice con build_runner
  4. json_serializable in pratica
← Torna a Dart Academy