1001Ferramentas
🔷 Conversores

JSON para Classe C#

Converta JSON em uma classe C# com propriedades auto-implementadas. Detecta tipos primitivos, listas, arrays e objetos aninhados. Útil para .NET/Unity. Tudo no navegador.

Modelar a resposta da API em classes .NET

Você vai consumir uma API em .NET e precisa das classes que o System.Text.Json ou o Newtonsoft vão preencher. É trabalho mecânico, e é justamente onde escapa o erro caro: um valor monetário que virou inteiro, uma lista que ficou de fora. Cole o JSON de exemplo e a classe sai com propriedades auto implementadas e os objetos aninhados já em classes separadas.

Os tipos vêm do valor: texto vira string, booleano vira bool, número inteiro vira long, número com decimal vira double, nulo vira object e array vira List do tipo do primeiro elemento. A diferença importante em relação ao gerador de Java está no nome: aqui as propriedades são convertidas para PascalCase, então first_name vira FirstName. Isso segue a convenção do C#, mas quebra a desserialização se o JSON for snake_case e você não configurar nada.

Antes de colar no projeto: se o campo é dinheiro, troque double por decimal, porque double arredonda em base dois e você não quer isso numa fatura. Nullability não é anotada, então acrescente a interrogação onde o contrato permitir nulo. Duas chaves com o mesmo nome em pontos diferentes do JSON geram uma classe só, a primeira que apareceu. Array vazio vira List de object por falta de amostra. A conversão acontece no navegador.

Perguntas frequentes

Como faço as propriedades baterem com JSON em snake_case?
No .NET 8 em diante, configure JsonNamingPolicy.SnakeCaseLower no serializador. Em versões anteriores, ou para nomes irregulares, anote cada propriedade com JsonPropertyName.
Serve para Unity?
Serve, são classes POCO sem dependência externa. Se você usa JsonUtility em vez de Newtonsoft, converta as propriedades em campos públicos, porque JsonUtility ignora propriedades.
E quando o array vem vazio no exemplo?
Sai como List de object, porque não existe elemento para inferir o tipo. Pegue um exemplo com pelo menos um item ou ajuste o genérico à mão.

Ferramentas Relacionadas