Générateur JSON vers Dart

Entrée JSON

1

Dart Généré

Configuration

Saisissez du JSON pour générer des classes Dart

Classes avec null safety et sérialisation JSON

Comment convertir JSON en Dart – guide étape par étape

Utilisez ce générateur JSON vers Dart pour créer des classes Dart à sécurité nulle à partir d'échantillons JSON pour les applications Flutter et les services Dart.

  1. Étape 1 – Collez un échantillon JSON

    • Collez un objet ou un tableau JSON représentatif dans l'éditeur de gauche.
    • Incluez des objets imbriqués, des tableaux et des champs nullables afin que les types soient correctement déduits.
    • Utilisez Import pour charger JSON à partir d'un fichier, d'une URL ou d'un exemple de données.
  2. Étape 2 – Choisissez les options du cours Dart

    • Définissez Class Name pour le modèle racine (par exemple Root).
    • Activez la sécurité nulle et confirmez la manière dont les champs facultatifs sont représentés (String?).
    • Si vous utilisez la génération de code, choisissez un style de sérialisation (comme json_serializable).
  3. Étape 3 – Vérifiez le code généré

    • Vérifiez les noms de champs, les types et la façon dont les tableaux/objets sont modélisés.
    • Ajustez les options telles que Root Type Name, la gestion des valeurs nulles et les frameworks si disponibles.
    • Si un champ est déduit de manière incorrecte, modifiez votre exemple JSON et régénérez-le.
  4. Étape 4 – Utilisez les modèles dans Flutter/Dart

    • Ajoutez les classes émergentes à votre projet (par exemple sous lib/models).
    • Analysez JSON dans des modèles avec une usine fromJson ou des sérialiseurs générés.
    • Exécutez flutter format pour que la sortie reste cohérente avec le style de votre projet.
  5. Étape 5 – Copier ou télécharger

    • Copiez la sortie dans votre projet ou téléchargez-la sous forme de fichier.
    • Exécutez votre formateur/linter pour qu'il corresponde à votre style de code.
    • Ajoutez des bibliothèques d'analyse/sérialisation JSON si votre langage l'exige.

Conseils rapides

  • Gardez les classes de modèles petites et composez des types imbriqués pour plus de clarté.
  • Utilisez l'analyse DateTime uniquement lorsque le format de votre API est cohérent.
  • Préférez les sérialiseurs générés pour les grands modèles afin de réduire les bugs de mappage manuel.
Exemple de résultat (simplifié)
// Entrée JSON
{
  "id": 123,
  "name": "Maeve Winters",
  "email": "[email protected]",
  "active": true,
  "roles": ["admin", "editor"],
  "metadata": { "plan": "pro" },
  "createdAt": "2024-03-01T10:15:00Z",
  "score": 99.5,
  "notes": null
}

// Generated Dart models (simplified)
class Metadata {
  final String plan;
  const Metadata({required this.plan});
}

class Root {
  final int id;
  final String name;
  final String? email;
  final bool active;
  final List<String> roles;
  final Metadata metadata;
  final String createdAt;
  final double score;
  final Object? notes;

  const Root({
    required this.id,
    required this.name,
    required this.email,
    required this.active,
    required this.roles,
    required this.metadata,
    required this.createdAt,
    required this.score,
    required this.notes,
  });
}

Outils JSON et Dart associés

Explorez d'autres outils JSON et de schéma qui fonctionnent parfaitement avec ce générateur JSON vers Dart.

Questions fréquentes

Quelles fonctionnalités Dart sont prises en charge ?

Le générateur crée des classes Dart avec une bonne sécurité de types, prend en charge la sérialisation JSON manuelle et le package json_annotation, utilise des types nullables pour les valeurs null, et suit les conventions de nommage Dart.

Comment fonctionne json_annotation ?

Avec json_annotation, les classes utilisent @JsonSerializable() et génèrent automatiquement fromJson/toJson via build_runner. Cela fournit une sérialisation JSON typée.

Comment les valeurs null sont‑elles gérées ?

Les valeurs null dans le JSON sont mappées sur des types nullables (?) en Dart. Les champs requis utilisent le mot‑clé 'required' dans les constructeurs, conformément à la null safety de Dart.

Et le système de types Dart ?

Le code généré exploite le typage fort de Dart avec les types appropriés (int, double, String, bool, List, Map) et suit les conventions comme camelCase pour les champs.