Gerador de JSON para Dart

Entrada JSON

Carregando editor…

Dart Gerado

Configuration

Insira dados JSON para gerar classes Dart

Classes com null safety e serialização JSON

Como converter JSON para Dart – guia passo a passo

Use este gerador JSON para Dart para criar classes Dart seguras para nulos a partir de amostras JSON para aplicativos Flutter e serviços Dart.

  1. Passo 1 – Cole uma amostra JSON

    • Cole um objeto ou matriz JSON representativo no editor esquerdo.
    • Inclua objetos aninhados, matrizes e campos anuláveis para que os tipos sejam inferidos corretamente.
    • Use Import para carregar JSON de um arquivo, URL ou dados de amostra.
  2. Passo 2 – Escolha as opções de classe do Dart

    • Defina Class Name para o modelo raiz (por exemplo Root).
    • Habilite a segurança nula e confirme como os campos opcionais são representados (String?).
    • Se você usar geração de código, escolha um estilo de serialização (como json_serializable).
  3. Passo 3 – Revise o código gerado

    • Verifique nomes de campos, tipos e como matrizes/objetos são modelados.
    • Ajuste opções como Root Type Name, tratamento nulo e estruturas, se disponíveis.
    • Se um campo for inferido incorretamente, ajuste seu JSON de amostra e gere-o novamente.
  4. Passo 4 – Use os modelos no Flutter/Dart

    • Adicione as classes geradas ao seu projeto (por exemplo, em lib/models).
    • Analise JSON em modelos com uma fábrica fromJson ou serializadores gerados.
    • Execute flutter format para manter a saída consistente com o estilo do seu projeto.
  5. Passo 5 – Copiar ou baixar

    • Copie a saída em seu projeto ou baixe-a como um arquivo.
    • Execute seu formatador/linter para corresponder ao seu estilo de código.
    • Adicione bibliotecas de análise/serialização JSON se sua linguagem exigir.

Dicas rápidas

  • Mantenha as classes de modelo pequenas e componha tipos aninhados para maior clareza.
  • Use a análise DateTime somente quando o formato da API for consistente.
  • Prefira serializadores gerados para modelos grandes para reduzir erros de mapeamento manual.
Saída de exemplo (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,
  });
}

Ferramentas JSON e Dart relacionadas

Explore mais ferramentas JSON e de esquema que funcionam muito bem junto com este gerador JSON para Dart.

Perguntas Frequentes

Quais recursos de Dart são suportados?

O gerador cria classes Dart com boa segurança de tipos, suporta serialização JSON manual e o pacote json_annotation, usa tipos nullable para valores null e segue convenções de nomenclatura do Dart.

Como o json_annotation funciona?

Quando o framework json_annotation é selecionado, as classes geradas usam a anotação @JsonSerializable() e geram automaticamente fromJson/toJson com build_runner. Isso fornece serialização JSON type-safe.

Como valores nullable são tratados?

Valores null no JSON são mapeados para tipos nullable (?) em Dart. Campos obrigatórios usam a palavra-chave 'required' nos construtores, seguindo os princípios de null safety do Dart.

E quanto ao sistema de tipos do Dart?

O código gerado aproveita o sistema de tipos forte do Dart com tipos apropriados (int, double, String, bool, List, Map) e segue convenções como camelCase para nomes de campos.

Gerador de JSON para Dart | JSONSwiss