Ir para o conteúdo
Totalmente local

JSON para classe Kotlin

Converta uma amostra JSON numa classe Kotlin pronta a usar.

Entrada
Saída

JSON para classe Kotlin

Cole uma resposta JSON e esta ferramenta a converte numa classe Kotlin pronta a usar, inferindo cada tipo de campo diretamente dos valores que fornece. É construída para programadores Android e backend que precisam de um modelo rápido para uma resposta de API, ficheiro de configuração ou payload de amostra, sem ter de escrever manualmente nomes de propriedades e tipos ou recorrer a um plugin de IDE.

Defina um nome para a classe raiz e escolha como aparecem os objetos aninhados: aninhados dentro da classe raiz ou declarados como classes separadas de nível superior. Alterne entre val para propriedades imutáveis e var quando o modelo precisa ser mutável, e ative valores predefinidos para dar a cada propriedade um padrão sensato (uma string vazia, zero, emptyList()) para que as instâncias possam ser criadas com menos argumentos. Adicione anotações @Serializable e @SerialName para kotlinx.serialization ou @SerializedName para Gson, e escolha indentação de 2 espaços, 4 espaços ou tabulações para corresponder ao estilo do seu projeto.

Os valores em falta ou nulos tornam-se tipos anuláveis automaticamente, arrays tornam-se List<T> com o tipo de elemento inferido a partir de cada item, e objetos com a mesma forma são condensados numa única classe reutilizável em vez de serem duplicados. A opção "mesclar campos entre elementos de matriz" controla se esse tipo de item é construído a partir de cada elemento na matriz ou apenas do primeiro, o que é útil para uma matriz muito grande ou com forma desigual. Quando o JSON no nível superior é em si uma matriz, a ferramenta envolve o tipo de item inferido numa List para si.

Tudo é executado localmente no seu navegador — o seu JSON nunca é carregado ou enviado para um servidor, pelo que é seguro colar respostas de API reais e payloads internos. Copie o Kotlin gerado, descarregue como ficheiro .txt ou envie a saída de volta para a entrada para a converter novamente com diferentes opções.

FAQ

Como é que a ferramenta decide quais campos são anuláveis?
Um campo torna-se anulável quando está em falta em pelo menos um objeto de amostra, ou quando o seu único valor observado é nulo. Um campo presente com um valor não-nulo em cada objeto permanece não-anulável.
Consegue gerar as anotações kotlinx.serialization ou Gson que preciso?
Sim. Escolha kotlinx.serialization para adicionar @Serializable e @SerialName, ou Gson para adicionar @SerializedName com a chave JSON original, para que a classe seja desserializada corretamente mesmo quando o nome da propriedade difere.
O que acontece com uma matriz JSON cujos objetos têm formas diferentes?
Os campos deles são mesclados numa única classe de dados, com qualquer campo em falta em alguns elementos marcado como anulável. Desative "Mesclar campos entre elementos de matriz" para inferir o tipo apenas a partir do primeiro elemento.
Suporta objetos aninhados?
Sim. Um objeto aninhado torna-se a sua própria classe de dados, declarada dentro da classe raiz ou como uma classe separada de nível superior, dependendo da opção de aninhamento.
O meu JSON é carregado em algum lugar?
Não. A conversão é executada inteiramente no seu navegador — o seu JSON nunca sai do seu dispositivo.