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.0Annoter 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 buildRenommer 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
- Annotations intégrées : override, deprecated
- Écrire des annotations personnalisées
- Génération de code avec build_runner
- json_serializable en action