Generatore JSON → Dart

Input JSON

Caricamento editor…

Dart Generato

Configuration

Inserisci dati JSON per generare classi Dart

Classi con null safety e serializzazione JSON

Come convertire JSON in Dart: guida passo passo

Utilizza questo generatore da JSON a Dart per creare classi Dart null-safe da esempi JSON per app Flutter e servizi Dart.

  1. Passaggio 1: incolla un esempio JSON

    • Incolla un oggetto o un array JSON rappresentativo nell'editor di sinistra.
    • Includere oggetti nidificati, matrici e campi nullable in modo che i tipi vengano dedotti correttamente.
    • Utilizza Import per caricare JSON da un file, un URL o dati di esempio.
  2. Passaggio 2: scegli le opzioni della classe Dart

    • Imposta Class Name per il modello root (ad esempio Root).
    • Abilita la sicurezza nulla e conferma come sono rappresentati i campi facoltativi (String?).
    • Se utilizzi la generazione di codice, scegli uno stile di serializzazione (come json_serializable).
  3. Passaggio 3: rivedere il codice generato

    • Controlla i nomi dei campi, i tipi e il modo in cui sono modellati gli array/oggetti.
    • Modifica opzioni come Root Type Name, gestione null e framework, se disponibili.
    • Se un campo viene dedotto in modo errato, modifica il JSON di esempio e rigeneralo.
  4. Passaggio 4: utilizzare i modelli in Flutter/Dart

    • Aggiungi le classi generate al tuo progetto (ad esempio in lib/models).
    • Analizza JSON in modelli con una factory fromJson o serializzatori generati.
    • Esegui flutter format per mantenere l'output coerente con lo stile del tuo progetto.
  5. Passaggio 5: copiare o scaricare

    • Copia l'output nel tuo progetto o scaricalo come file.
    • Esegui il tuo formattatore/linter per adattarlo allo stile del tuo codice.
    • Aggiungi librerie di analisi/serializzazione JSON se la tua lingua le richiede.

Suggerimenti rapidi

  • Mantieni le classi del modello piccole e componi tipi nidificati per maggiore chiarezza.
  • Utilizza l'analisi DateTime solo quando il formato API è coerente.
  • Preferire serializzatori generati per modelli di grandi dimensioni per ridurre i bug di mappatura manuale.
Output di esempio (semplificato)
// Ingresso 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,
  });
}

Strumenti JSON e Dart correlati

Esplora altri strumenti JSON e schemi che funzionano alla grande insieme a questo generatore da JSON a Dart.

Domande frequenti

Quali funzionalità Dart sono supportate?

Il generatore crea classi Dart con corretta type safety, supporta sia serializzazione JSON manuale sia il package json_annotation, usa tipi nullable per i valori null e segue le convenzioni di naming Dart.

Come funziona json_annotation?

Quando si seleziona il framework json_annotation, le classi generate usano l’annotazione @JsonSerializable() e generano automaticamente i metodi fromJson/toJson con build_runner. Questo offre serializzazione JSON type-safe.

Come vengono gestiti i valori nullable?

I valori null nel JSON vengono mappati a tipi nullable (?) in Dart, garantendo null safety. I campi richiesti usano la keyword 'required' nei costruttori, seguendo i principi di null safety di Dart.

E il sistema di tipi di Dart?

Il codice Dart generato sfrutta il sistema di tipi forte con tipi appropriati (int, double, String, bool, List, Map) e segue le convenzioni Dart come camelCase per i nomi dei campi.

Generatore JSON → Dart | JSONSwiss