Transforme uma amostra de JSON em data classes Kotlin para kotlinx.serialization, Gson ou Moshi
Funciona no seu navegador. Nada do que você digita é enviado a lugar nenhum. Verificado em 16 de outubro de 2026.Cole uma amostra de JSON e receba data classes Kotlin para kotlinx.serialization, Gson ou Moshi. Números inteiros viram Int, Long acima de 2.147.483.647, qualquer decimal deixa a propriedade como Double, um valor null a torna anulável, e uma chave ausente em alguns objetos vira T? = null para que as 3 bibliotecas a decodifiquem.
Esta página foi traduzida automaticamente do original em inglês. Nenhuma pessoa revisou ainda a tradução; a versão em inglês é a que deve ser considerada. Ler o original em inglês
Cole uma amostra de JSON, como a resposta de uma API, na caixa da esquerda.
As data classes Kotlin aparecem enquanto você digita, uma por objeto, com propriedades em camelCase e uma anotação onde a chave for diferente.
Escolha kotlinx.serialization, Gson ou Moshi, var em vez de val se precisar, e o nome da classe raiz.
Clique em Copiar, ou em Baixar para salvar Models.kt.
O Kotlin lê JSON em data classes, e cada objeto precisa de uma classe cujas propriedades tenham os tipos certos, a anulabilidade certa e um caminho de volta às suas chaves. Este conversor escreve essas classes a partir de uma amostra, então uma resposta longa de API vira Kotlin com uma só colagem.
Como os tipos são escolhidos.
| Valor JSON | Tipo Kotlin |
|---|---|
| "text" | String |
| true / false | Boolean |
| 42 (só números inteiros) | Int, ou Long além de 32 bits |
| 4.5 (algum decimal visto) | Double |
| null, e também um tipo | String?, Int? |
| só null, ou tipos misturados | JsonElement? ou Any? |
| [ ... ] | List<...> |
| { } vazio | JsonObject ou Map<String, Any?> |
| { ... } | uma data class própria |
Chaves ausentes. Todos os objetos de um array são unidos em uma classe. Uma chave que alguns deixam de fora vira anulável com null como padrão, porque o kotlinx.serialization e o Moshi tratam como erro uma chave ausente sem padrão. O kotlinx.serialization também rejeita chaves para as quais não tem propriedade, então cada chave da amostra ganha uma.
Nomes. As propriedades ficam em lowerCamelCase. Quando isso muda a chave, como user_name para userName, a propriedade recebe @SerialName, @SerializedName ou @Json(name = ...), conforme a biblioteca. Palavras reservadas como class são escritas entre crases. As strings das anotações escapam o cifrão, já que o Kotlin o leria como template.
Opções. var em vez de val gera propriedades mutáveis. Um objeto vazio vira uma classe comum, porque uma data class precisa de pelo menos uma propriedade. A classe raiz se chama Root, a menos que você dê outro nome.
Cada resultado foi verificado lendo o Kotlin de volta e decodificando 9 amostras com as regras padrão do kotlinx.serialization. Nada do que você cola sai do navegador.
Cole uma amostra de JSON no conversor e as data classes aparecem ao lado, uma por objeto. Com kotlinx.serialization, adicione o plugin e decodifique com Json.decodeFromString<Root>(text); com Gson use Gson().fromJson(text, Root::class.java); com Moshi crie um adaptador para Root.
Uma chave que alguns objetos de um array deixam de fora recebe um tipo anulável e null como padrão. O kotlinx.serialization e o Moshi recusam uma chave ausente a menos que a propriedade tenha um padrão, então é o padrão que permite decodificar cada objeto da amostra.
O kotlinx.serialization é a do próprio Kotlin, funciona em todas as plataformas Kotlin e confere os tipos na compilação. O Moshi com codegen combina com projetos Android que já usam Retrofit e Okio. O Gson é o mais antigo e não exige configuração, mas ignora a segurança contra null do Kotlin e os valores padrão ao criar objetos.
As propriedades ficam em lowerCamelCase, então user_name vira userName, com @SerialName, @SerializedName ou @Json(name = ...) mantendo a chave original. Uma chave que é palavra reservada do Kotlin, como class ou object, é escrita entre crases, o que mantém a chave como nome real da propriedade.
Números inteiros viram Int, ou Long quando um valor passa de 2.147.483.647, e um campo vira Double assim que algum valor da amostra tem parte decimal. Valores de tipos diferentes viram JsonElement? com kotlinx.serialization, ou Any? com Gson e Moshi.
Não. A conversão roda no seu navegador sem nenhuma requisição a um servidor, e o JSON não é guardado, então respostas de API com tokens ou dados pessoais ficam no seu dispositivo. Feche a aba e nada fica para trás.
Taxas e regras mudam; confira a fonte antes de confiar em um valor.
Ainda com dúvidas? Pergunte sobre Conversor de JSON para data classes Kotlin e qualquer pessoa que saiba pode responder. Não é preciso ter conta.