0Pricing
Dart Academy · Leçon

json_serializable en action

Générer automatiquement la sérialisation des modèles

json_serializable en action est une leçon Dart Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Dart Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Dart Academy comprend 4 leçons au total.

Le problème du code JSON répétitif

Écrire fromJson et toJson à la main est fastidieux et source d’erreurs. Le paquet json_serializable génère les deux à partir d’un modèle. 📦

Ajouter les paquets

Vous avez besoin de json_annotation comme dépendance normale, ainsi que de json_serializable et build_runner comme dépendances de développement pour la génération.

dependencies:
  json_annotation: ^4.9.0

Annoter la classe

Marquez votre modèle avec @JsonSerializable. Cette annotation indique au générateur de produire le code de sérialisation pour cette classe.

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

Déclarer le fichier de partie

Ajoutez une directive part afin que votre fichier puisse inclure les fonctions auxiliaires générées. Son nom reprend celui de votre fichier, avec le suffixe .g.dart.

part 'user.g.dart';

Relier fromJson

Ajoutez une fabrique qui délègue à la fonction générée. La fonction auxiliaire _$UserFromJson est créée pour vous par le générateur.

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

Relier toJson

Ajoutez une méthode qui appelle l’écriture générée. La fonction auxiliaire _$UserToJson reconvertit votre objet en mappage JSON.

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

Générer le code

Exécutez build_runner une fois : le fichier user.g.dart apparaît avec les deux fonctions auxiliaires entièrement implémentées et prêtes à l’emploi.

dart run build_runner build

Renommer une clé JSON

Lorsque le champ de l’API diffère du nom Dart, utilisez @JsonKey pour l’associer. Votre code reste propre tandis que le JSON correspond au serveur.

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

Fournir une valeur par défaut

Vous pouvez fournir une valeur de remplacement pour les champs manquants. L’option defaultValue renseigne une valeur lorsque la clé est absente du JSON.

@JsonKey(defaultValue: 0)
final int score;

Les modèles imbriqués fonctionnent automatiquement

Si un champ est une autre classe @JsonSerializable, le générateur la sérialise récursivement. Les objets imbriqués ne demandent aucun effort supplémentaire de votre part.

L’utiliser comme du Dart ordinaire

Une fois le code généré, vous analysez et encodez les données avec de simples appels de méthode. Les fonctions auxiliaires générées restent masquées, si bien que vos appels restent naturels.

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

Vérification rapide

Quelle annotation marque une classe pour la génération de code JSON ?

Récapitulatif

Annotez avec @JsonSerializable, reliez fromJson et toJson, puis exécutez build_runner. Utilisez @JsonKey pour associer les noms de champs et les valeurs par défaut. 🎉

Questions Fréquemment Posées

La leçon « json_serializable en action » est-elle gratuite ?

Oui — le texte complet de « json_serializable en action » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Dart Academy, passe à CoddyKit PRO. Le cours Dart Academy comprend 4 leçons au total.

Qu'est-ce que j'apprendrai dans « json_serializable en action » ?

Générer automatiquement la sérialisation des modèles Tu pratiques Dart Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.

Dois-je avoir de l'expérience pour commencer Dart Academy ?

Aucune expérience préalable n'est requise. Dart Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.

Combien de temps prend la leçon « json_serializable en action » ?

La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.

Peux-tu écrire et exécuter du code dans cette leçon Dart Academy ?

Oui. Chaque leçon Dart Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.

Toutes les leçons de ce cours

  1. Annotations intégrées : override, deprecated
  2. Écrire des annotations personnalisées
  3. Génération de code avec build_runner
  4. json_serializable en action
← Retour à Dart Academy