Classes Serializáveis
Anote os modelos
Classes Serializáveis é uma aula grátis de Kotlin Academy no CoddyKit. Esta é a aula 2 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 Kotlin Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Kotlin Academy inclui 4 aulas no total.
A anotação @Serializable
Para tornar uma classe serializável, anote-a com @Serializable. Em seguida, o plug-in do compilador gera um serializador para ela.
import kotlinx.serialization.Serializable
@Serializable
data class User(val id: Int, val name: String)Funciona com classes de dados
Você pode anotar qualquer classe, mas as classes de dados são a escolha mais comum para modelos porque geram automaticamente equals, hashCode e toString.
Todas as propriedades do construtor se tornam campos serializados.
Valores padrão
Propriedades com valores padrão se tornam opcionais durante a decodificação. Se o JSON não as incluir, o valor padrão será usado.
@Serializable
data class Config(
val host: String,
val port: Int = 8080,
val secure: Boolean = false
)Propriedades anuláveis
Tipos anuláveis correspondem a null no JSON. Uma propriedade anulável sem valor padrão ainda é obrigatória no JSON (mas seu valor pode ser nulo).
@Serializable
data class Profile(
val name: String,
val bio: String? = null
)Renomeando campos com @SerialName
Os nomes dos campos JSON geralmente diferem das convenções de nomenclatura do Kotlin. Use @SerialName para mapeá-los.
import kotlinx.serialization.SerialName
import kotlinx.serialization.Serializable
@Serializable
data class Account(
@SerialName("user_id") val userId: Int,
@SerialName("full_name") val fullName: String
)Ignorando propriedades com @Transient
Marque uma propriedade com @Transient para excluí-la da serialização. Propriedades transitórias devem ter um valor padrão.
import kotlinx.serialization.Transient
import kotlinx.serialization.Serializable
@Serializable
data class Session(
val token: String,
@Transient val cachedAt: Long = 0L
)Classes serializáveis aninhadas
Classes serializáveis podem conter outras classes serializáveis. O plug-in gerencia todo o grafo automaticamente.
@Serializable
data class Address(val city: String, val zip: String)
@Serializable
data class Company(val name: String, val address: Address)Coleções nos modelos
Coleções padrão, como List, Set e Map, são serializáveis por padrão quando seus elementos são serializáveis.
@Serializable
data class Team(
val name: String,
val members: List<String>,
val scores: Map<String, Int>
)Enumerações são compatíveis
Classes de enumeração podem ser anotadas com @Serializable e são serializadas para seus nomes por padrão. Use @SerialName nas entradas para personalizá-las.
@Serializable
enum class Role {
@SerialName("admin") ADMIN,
@SerialName("user") USER
}Resumo: obrigatórias e opcionais
Uma propriedade é obrigatória no JSON, a menos que tenha um valor padrão. Regras principais:
- Sem valor padrão → obrigatória
- Com valor padrão → opcional
@Transient→ ignorada, deve ter um valor padrão- Anulável sem valor padrão → obrigatória, mas pode ser nula
O que não pode ser serializado diretamente
Tipos sem um serializador integrado (por exemplo, java.util.Date, java.time.Instant e UUID) precisam de um serializador personalizado, que você aprenderá mais adiante.
Tentar serializá-los sem um serializador causa um erro de compilação.
Verificação rápida
Qual afirmação sobre @Transient está correta?
Recapitulação
Você aprendeu a anotar modelos:
@Serializablena classe- Valores padrão tornam os campos opcionais
@SerialNamerenomeia chaves JSON@Transientexclui um campo (é necessário um valor padrão)
Em seguida: codificação e decodificação de JSON.
Perguntas Frequentes
A aula “Classes Serializáveis” é grátis?
Sim — o texto completo de “Classes Serializáveis” é 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 Kotlin Academy, atualize para CoddyKit PRO. O curso de Kotlin Academy inclui 4 aulas no total.
O que vou aprender em “Classes Serializáveis”?
Anote os modelos Você pratica Kotlin 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 Kotlin Academy?
Nenhuma experiência prévia é necessária. Kotlin 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 2 de 4.
Quanto tempo leva a aula “Classes Serializáveis”?
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 Kotlin Academy?
Sim. Cada aula de Kotlin 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
- Configuração de kotlinx.serialization
- Classes Serializáveis
- Codificação e Decodificação de JSON
- Serializadores Personalizados