0Pricing
Dart Academy · Aula

json_serializable em Ação

Gere automaticamente a serialização de modelos.

json_serializable em Ação é uma aula grátis de Dart Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Dart Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Dart Academy inclui 4 aulas no total.

O problema do código repetitivo para JSON

Escrever fromJson e toJson manualmente é trabalhoso e propenso a erros. O pacote json_serializable gera ambos para você a partir de um modelo. 📦

Adicione os pacotes

Você precisa de json_annotation como uma dependência normal, além de json_serializable e build_runner como dependências de desenvolvimento para a geração.

dependencies:
  json_annotation: ^4.9.0

Anote a classe

Marque seu modelo com @JsonSerializable. Essa anotação informa ao gerador que ele deve produzir o código de serialização para essa classe.

@JsonSerializable()
class User {
  final String name;
  User(this.name);
}

Declare o arquivo de parte

Adicione uma diretiva part para que seu arquivo possa incluir os auxiliares gerados. O nome dele reproduz o nome do seu arquivo, com o sufixo .g.dart.

part 'user.g.dart';

Conecte fromJson

Adicione uma fábrica que encaminhe a chamada para a função gerada. O auxiliar _$UserFromJson é criado pelo compilador.

factory User.fromJson(Map<String, dynamic> j) =>
    _$UserFromJson(j);

Conecte toJson

Adicione um método que chame o escritor gerado. O auxiliar _$UserToJson transforma seu objeto novamente em um mapa JSON.

Map<String, dynamic> toJson() => _$UserToJson(this);

Gere o código

Execute build_runner uma vez, e o arquivo user.g.dart aparecerá com as duas funções auxiliares totalmente implementadas e prontas para uso.

dart run build_runner build

Renomeie uma chave JSON

Quando o campo da API for diferente do seu nome em Dart, use @JsonKey para mapeá-lo. Seu código permanece limpo enquanto o JSON corresponde ao servidor.

@JsonKey(name: 'full_name')
final String fullName;

Forneça um valor padrão

Você pode fornecer um valor alternativo para campos ausentes. A opção defaultValue preenche um valor quando a chave não está presente no JSON.

@JsonKey(defaultValue: 0)
final int score;

Modelos aninhados funcionam automaticamente

Se um campo for outra classe @JsonSerializable, o gerador a serializará recursivamente. Objetos aninhados não exigem nenhum esforço adicional.

Use como um Dart normal

Depois de gerar o código, você analisa e codifica usando chamadas de método comuns. Os helpers gerados ficam ocultos, para que os pontos de chamada tenham uma leitura natural.

final u = User.fromJson(data);
final back = u.toJson();

Verificação rápida

Qual anotação marca uma classe para a geração de código JSON?

Recapitulação

Anote com @JsonSerializable, conecte fromJson e toJson e execute build_runner. Use @JsonKey para mapear nomes de campos e valores padrão. 🎉

Perguntas Frequentes

A aula “json_serializable em Ação” é grátis?

Sim — o texto completo de “json_serializable em Ação” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Dart Academy, atualize para CoddyKit PRO. O curso de Dart Academy inclui 4 aulas no total.

O que vou aprender em “json_serializable em Ação”?

Gere automaticamente a serialização de modelos. Você pratica Dart Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar Dart Academy?

Nenhuma experiência prévia é necessária. Dart Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.

Quanto tempo leva a aula “json_serializable em Ação”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de Dart Academy?

Sim. Cada aula de Dart Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Anotações Integradas: override, deprecated
  2. Escrevendo Anotações Personalizadas
  3. Geração de Código com build_runner
  4. json_serializable em Ação
← Voltar para Dart Academy