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.0Anote 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 buildRenomeie 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
- Anotações Integradas: override, deprecated
- Escrevendo Anotações Personalizadas
- Geração de Código com build_runner
- json_serializable em Ação