Skip to main content
CheckTown
Conversores

Como converter JSON para data classes Kotlin

Publicado 5 min de leitura
Neste artigo

Por que data classes Kotlin a partir de JSON

Data classes Kotlin fornecem uma forma concisa de modelar dados JSON com suporte integrado para equals, hashCode, copy e desestruturação. Para desenvolvedores Android e projetos backend Kotlin, escrever manualmente data classes para cada resposta de API é demorado e propenso a erros. Nosso conversor JSON para Kotlin gera data classes idiomáticas com null safety adequada, anotações de serialização e convenções de nomenclatura em segundos.

O sistema de null safety do Kotlin é uma de suas características mais fortes, mas requer declarações explícitas de tipos nullable. Ao converter JSON — onde qualquer campo pode potencialmente ser null — o conversor analisa inteligentemente os dados para determinar quais campos devem ser nullable (marcados com ?) e quais podem ser seguramente non-null, produzindo código mais seguro desde o início.

Funcionalidades do conversor

O conversor produz data classes Kotlin adaptadas à sua biblioteca de serialização e requisitos do projeto.

  • Tipos nullable — campos com valores null na amostra JSON geram tipos nullable (String?), enquanto valores presentes geram tipos non-null (String), refletindo com precisão o contrato de dados
  • @SerializedName — gera anotações Gson @SerializedName quando as chaves JSON usam snake_case ou outros formatos não-camelCase, mapeando-as para nomes de propriedades Kotlin idiomáticas
  • Valores padrão — campos opcionais podem incluir valores padrão (strings vazias, listas vazias, null) no construtor, tornando a data class flexível para respostas JSON parciais

Experimente gratuitamente — sem cadastro

Converter JSON para Kotlin →

Padrões específicos do Android

Data classes Kotlin geradas a partir de JSON são particularmente úteis nos fluxos de desenvolvimento Android.

  • Parcelize — data classes geradas podem ser anotadas com @Parcelize e implementar Parcelable para passar entre activities e fragments Android sem escrever código de parcelização
  • Integração Room — a saída pode servir como classes de entidade Room adicionando anotações @Entity e @PrimaryKey, conectando respostas de API diretamente ao armazenamento de banco de dados local
  • Compatibilidade Retrofit — as classes geradas funcionam imediatamente com Retrofit e conversores Gson/Moshi, permitindo definir interfaces API e começar chamadas de rede em minutos

Perguntas frequentes

Como o conversor lida com null safety?

O conversor examina cada campo na amostra JSON. Campos com valores null são tipados como nullable (ex: String?). Campos com valores reais são tipados como non-null (ex: String). Para a null safety mais precisa, forneça uma amostra JSON que represente a gama completa dos seus dados — incluindo campos que podem ser null em produção.

Devo usar val ou var para propriedades de data class?

O conversor gera propriedades val (somente leitura) por padrão, seguindo a preferência do Kotlin por imutabilidade. Data classes com propriedades val são thread-safe e mais fáceis de raciocinar. Se você precisa de propriedades mutáveis para casos específicos como entidades Room com IDs auto-gerados, pode mudar propriedades individuais para var após a geração.

Posso gerar sealed classes para JSON polimórfico?

O conversor gera data classes padrão a partir da estrutura JSON. Para JSON polimórfico (onde um campo determina o tipo de objeto), você precisará criar manualmente uma hierarquia de sealed classes após a geração. Use o conversor para gerar cada variante como uma data class separada, depois envolva-as em uma sealed class com um campo discriminador.

Ferramentas relacionadas