Transforme uma amostra de JSON em POJOs, records ou classes Lombok do Java anotados para Jackson
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 classes Java anotadas para Jackson, como POJOs com getters e setters, records ou Lombok @Data. Números inteiros viram int, long acima de 2.147.483.647, qualquer decimal deixa o campo como double, e um valor null ou ausente usa o tipo wrapper, como Integer.
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.
O Java aparece enquanto você digita: um Root.java com uma classe estática aninhada por objeto, campos em camelCase e @JsonProperty onde a chave for diferente.
Escolha POJO com getters e setters, um record (Java 16+) ou Lombok @Data, e defina o nome da classe raiz.
Clique em Copiar, ou em Baixar para salvar Root.java, e leia o JSON com o ObjectMapper do Jackson.
O Java lê JSON em classes, geralmente com o Jackson, e cada objeto do JSON precisa de uma classe cujos campos tenham os tipos e nomes certos. Este conversor escreve essas classes a partir de uma amostra, então uma resposta longa de API vira Java que compila com uma só colagem.
Como os tipos são escolhidos.
| Valor JSON | Tipo Java |
|---|---|
| "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, ou ausente em alguns itens | Integer, Boolean, Double |
| só null, ou tipos misturados | Object |
| [ ... ] | List<...> |
| { } vazio | Map<String, Object> |
| { ... } | uma classe estática aninhada |
Um arquivo só. O resultado é um único Root.java: a classe raiz guarda todas as outras como classes public static aninhadas, que o Jackson consegue criar e que não exigem arquivos extras. Quando o JSON é um array ou um valor solto, um comentário diz o tipo para ler, como List<Root.RootItem>.
Nomes e chaves. Os campos ficam em camelCase, então user_name vira userName, com @JsonProperty("user_name") mantendo a chave. Palavras reservadas do Java ganham um sublinhado, como class_. Um campo como xCoord é escrito xcoord, porque senão o Jackson o ligaria ao getter getXCoord com outro nome. Uma chave vazia é ignorada com @JsonIgnoreProperties, já que o Jackson não consegue nomeá-la.
Três estilos. Um POJO tem campos privados, getters e setters e funciona em qualquer lugar. Um record (Java 16+) é curto e imutável. O Lombok @Data mantém os campos e deixa o Lombok escrever o resto.
O resultado POJO de 9 amostras foi compilado com javac e lido pelo Jackson 2.17, com chaves desconhecidas e null em primitivos tratados como erros. Nada do que você cola sai do navegador.
Cole uma amostra de JSON no conversor e o Java aparece ao lado: um Root.java com uma classe estática aninhada para cada objeto. Adicione o Jackson ao projeto e leia o JSON com new ObjectMapper().readValue(json, Root.class), que preenche cada campo a partir da sua chave.
Colocar todas as classes dentro de Root mantém o modelo inteiro em um arquivo que compila como está. O Jackson só consegue criar uma classe aninhada quando ela é estática, porque uma classe interna precisa antes de uma instância da classe externa, então toda classe aninhada é declarada public static.
Um campo usa o tipo wrapper, como Integer, Long, Double ou Boolean, quando a amostra o mostra como null ou alguns objetos deixam a chave de fora. Um int primitivo não guarda null, e uma chave ausente viraria 0 sem aviso, então o tipo wrapper separa um valor ausente de zero.
Records, a partir do Java 16, são os mais curtos e imutáveis, e o Jackson 2.12 ou mais recente os lê diretamente. Um POJO com getters e setters funciona em qualquer versão do Java e com qualquer biblioteca. O @Data do Lombok escreve os getters e setters para você na compilação, deixando o código-fonte curto.
O Jackson encontra propriedades pelos getters e chama getXCoord de xcoord, baixando as maiúsculas iniciais. Um campo chamado xCoord não encontraria o próprio getter, e a propriedade se dividiria em duas. O campo se chama xcoord, com @JsonProperty("xCoord") mantendo a chave original.
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 classes Java e qualquer pessoa que saiba pode responder. Não é preciso ter conta.