UTILS.
100% no navegador

JSON para POJO Java

Crie classes POJO Java a partir de um JSON de exemplo, com anotações Jackson ou Gson, getters e setters gerados, e tipos boxed para campos nulos.

saída

Sobre esta ferramenta

A ferramenta JSON para POJO Java converte um JSON de exemplo colado em classes de modelo Java, do jeito que o jsonschema2pojo faz, mas instantaneamente no seu navegador. Ela analisa o JSON, infere tipos Java recursivamente e emite uma classe por objeto: strings viram String, inteiros int ou long, outros números double, booleanos boolean, arrays List<T>, e objetos aninhados suas próprias classes PascalCase declaradas antes dos pais que as usam.

Toda a análise e geração rodam localmente com JSON.parse e JavaScript puro, então seus payloads nunca saem da página. Campos são convertidos para camelCase; quando a chave JSON já não está em camelCase a ferramenta adiciona @JsonProperty("originalKey") (Jackson) ou @SerializedName("originalKey") (Gson), ou nada no modo de campos simples. Campos que podem ser null em qualquer exemplo usam os tipos wrapper boxed (Integer, Long, Double, Boolean) para que null seja representável. Classes Jackson carregam @JsonIgnoreProperties(ignoreUnknown = true) para compatibilidade futura.

O alternador de estilo de anotação seleciona Jackson (padrão), Gson ou sem anotações, e apenas os imports realmente usados são incluídos. O alternador de accessors escolhe entre métodos getX()/setX() gerados em campos privados (padrão) ou campos públicos simples. Copie o resultado ou baixe-o como um arquivo .java para colocar direto no seu projeto.

Perguntas frequentes

Quais tipos Java são produzidos?
string para String, inteiro para int (long quando um valor excede a faixa de int), número não inteiro para double, booleano para boolean, array para List<T>, e objeto para uma classe nomeada. Campos que podem ser null usam tipos boxed — Integer, Long, Double, Boolean.
Anotações Jackson ou Gson?
O alternador de anotação escolhe Jackson (@JsonProperty, mais @JsonIgnoreProperties(ignoreUnknown = true)), Gson (@SerializedName) ou nenhuma. Anotações só são adicionadas quando o nome de campo camelCase difere da chave JSON original.
Eu recebo getters e setters?
Por padrão, cada campo privado recebe um getX() e setX() gerado. Mude o alternador de accessors para campos públicos simples se você preferir campos nus estilo records sem métodos acessores.
Meu JSON é enviado para algum lugar?
Não. O JSON é analisado e as classes são geradas inteiramente no seu navegador com JavaScript puro. Nada é enviado, então você pode colar respostas de API internas com segurança.

Mais ferramentas