Generador de JSON a Dart

Entrada JSON

Cargando editor…

Dart Generado

Configuration

Ingresa datos JSON para generar clases Dart

Clases con null safety y serialización JSON

Cómo convertir JSON a Dart – guía paso a paso

Utilice este generador de JSON a Dart para crear clases Dart seguras para nulos a partir de muestras JSON para aplicaciones Flutter y servicios Dart.

  1. Paso 1: pega una muestra JSON

    • Pegue un objeto o matriz JSON representativa en el editor de la izquierda.
    • Incluye objetos anidados, matrices y campos que aceptan valores NULL para que los tipos se infieran correctamente.
    • Utilice Import para cargar JSON desde un archivo, URL o datos de muestra.
  2. Paso 2: elige las opciones de clase de Dart

    • Establezca Class Name para el modelo raíz (por ejemplo, Root).
    • Habilite la seguridad nula y confirme cómo se representan los campos opcionales (String?).
    • Si utiliza la generación de código, elija un estilo de serialización (como json_serializable).
  3. Paso 3: revisar el código generado

    • Verifique los nombres de los campos, los tipos y cómo se modelan las matrices/objetos.
    • Ajuste opciones como Root Type Name, manejo de nulos y marcos si están disponibles.
    • Si un campo se infiere incorrectamente, modifique su JSON de muestra y vuelva a generarlo.
  4. Paso 4: usa los modelos en Flutter/Dart

    • Agregue las clases generadas a su proyecto (por ejemplo, en lib/models).
    • Analice JSON en modelos con una fábrica fromJson o serializadores generados.
    • Ejecute flutter format para mantener la salida consistente con el estilo de su proyecto.
  5. Paso 5: copiar o descargar

    • Copie el resultado en su proyecto o descárguelo como un archivo.
    • Ejecute su formateador/linter para que coincida con su estilo de código.
    • Agregue bibliotecas de análisis/serialización JSON si su idioma las requiere.

Consejos rápidos

  • Mantenga las clases de modelos pequeños y cree tipos anidados para mayor claridad.
  • Utilice el análisis DateTime solo cuando el formato de su API sea coherente.
  • Prefiera serializadores generados para modelos grandes para reducir errores de mapeo manual.
Salida de ejemplo (simplificada)
// entrada 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,
  });
}

Herramientas JSON y Dart relacionadas

Explore más herramientas de esquemas y JSON que funcionan muy bien junto con este generador de JSON a Dart.

Preguntas frecuentes

¿Qué características de Dart se admiten?

El generador crea clases Dart con buena seguridad de tipos, admite serialización JSON manual y el paquete json_annotation, usa tipos anulables para valores null y sigue las convenciones de nombres de Dart.

¿Cómo funciona json_annotation?

Cuando se selecciona json_annotation, las clases usan la anotación @JsonSerializable() y generan métodos fromJson/toJson automáticamente con build_runner. Esto brinda serialización JSON segura por tipos.

¿Cómo se manejan valores null?

Los valores null en JSON se mapean a tipos anulables (?) en Dart, proporcionando null safety. Los campos requeridos usan la palabra clave 'required' en constructores, siguiendo los principios de null safety de Dart.

¿Qué hay del sistema de tipos de Dart?

El código generado aprovecha el sistema de tipos fuerte de Dart con tipos apropiados (int, double, String, bool, List, Map) y sigue convenciones como camelCase para nombres de campos.

Generador de JSON a Dart | JSONSwiss