Você está sem internet. As ferramentas que você já abriu continuam funcionando.
JSON para data class Kotlin
Cole um JSON e receba data classes Kotlin com propriedades val. Campos opcionais e null viram anuláveis com padrão null, e as anotações kotlinx.serialization entram se você quiser.
Grátis e privado. Tudo funciona no seu navegador e nada é enviado.
Relatar um problema
Como funciona
Cole o seu JSONCole uma resposta da sua API ou abra um arquivo .json. Use Exemplo para ver como funciona.
Ajuste as opçõesDefina o nome do tipo principal e as opções desta linguagem. O código se atualiza enquanto você digita.
Copie ou baixeCopie o código para o seu projeto ou baixe como arquivo.
Data classes para Android e para o servidor
Cada objeto JSON vira uma data class com propriedades em camelCase. Com kotlinx.serialization ativado, cada classe recebe @Serializable e @SerialName mantém a chave original sempre que o nome da propriedade é diferente. Campos de tipo desconhecido usam JsonElement, que o kotlinx.serialization lê sem código extra.
Campos que faltam em alguns itens ou que podem ser null são escritos como tipos anuláveis com = null, então a decodificação não falha quando eles não vêm. Datas continuam String, porque o kotlinx.serialization não tem tipo de data embutido; crie seu próprio serializador ou use kotlinx-datetime se precisar de objetos de data. Sem as anotações, as classes também funcionam com Moshi, Gson ou Jackson.
Perguntas frequentes
Por que algumas propriedades são anuláveis?
Porque o exemplo mostra que elas podem faltar ou ser null. Se fossem não anuláveis, a decodificação falharia com esses dados.
Meu JSON é enviado para algum lugar?
Não. Os tipos são gerados no seu navegador. Respostas de API com dados de clientes ou chaves nunca saem do seu dispositivo.
Como os campos opcionais são detectados?
Se o JSON tem uma lista de objetos, todos os objetos são comparados. Um campo que falta em pelo menos um objeto é marcado como opcional. Com um único objeto, todos os campos são tratados como obrigatórios.
O que acontece com campos que são sempre null?
Não dá para saber o tipo pelo exemplo, então o campo recebe um tipo genérico como unknown, object, Any ou JsonElement. Inclua um exemplo em que o campo tenha valor para obter um tipo preciso.
Por que o meu 1.0 virou número decimal?
A ferramenta olha como o número está escrito. 1.0 ou 2.5 viram double ou float, 1 vira inteiro. Se um campo é inteiro em alguns itens e decimal em outros, o tipo decimal é usado.
Posso usar o resultado em código de produção?
Sim, o código compila como está nas configurações mais comuns. Revise nomes e tipos antes do commit, porque um exemplo nunca mostra todos os valores possíveis.
Funciona sem internet?
Sim. Depois que você abre a página uma vez, ela continua funcionando sem conexão com a internet.
Solte o arquivo para ver o que dá para fazer com ele