UTILS.
100% no navegador
💠

JSON para Classes C#

Gere classes de modelo C# a partir de um JSON de exemplo para System.Text.Json ou Newtonsoft.Json, com propriedades PascalCase e tipos de valor nulos.

saída

Sobre esta ferramenta

A ferramenta JSON para Classes C# converte um JSON de exemplo colado em classes de modelo ou records C#, para que desenvolvedores .NET possam montar DTOs a partir de uma resposta de API em segundos. Ela analisa o JSON, infere tipos C# recursivamente e emite um tipo por objeto: strings viram string, strings de data-hora ISO DateTime, inteiros int ou long, outros números double, booleanos bool, arrays List<T>, e objetos aninhados suas próprias classes PascalCase declaradas antes dos pais que as referenciam.

Toda a análise e geração de código acontecem localmente no seu navegador com JSON.parse e JavaScript puro — nada é enviado. Propriedades são emitidas como auto-propriedades PascalCase, public T Prop { get; set; }. Quando a chave JSON difere do nome de propriedade PascalCase a ferramenta adiciona [JsonPropertyName("originalKey")] para System.Text.Json ou [JsonProperty("originalKey")] para Newtonsoft, e apenas as diretivas using necessárias são incluídas.

Propriedades de tipo de valor que podem ser null em qualquer exemplo são tornadas nulas (int?, double?, bool?, DateTime?), enquanto tipos de referência como string e List já são nulos. O alternador de serializador alterna o estilo de atributo e using entre System.Text.Json (padrão) e Newtonsoft.Json; o alternador de forma emite classes (padrão) ou records. Copie o código ou baixe-o como um arquivo .cs.

Perguntas frequentes

Como os tipos JSON são mapeados para C#?
string para string, uma data-hora ISO para DateTime, inteiro para int (long além da faixa de int), número não inteiro para double, booleano para bool, array para List<T>, e objeto para uma classe ou record nomeado. Tipos de valor nulos recebem o modificador ? final.
System.Text.Json ou Newtonsoft?
O alternador de serializador escolhe qualquer um. Ele controla o atributo usado quando o nome de uma propriedade difere da chave JSON — [JsonPropertyName("key")] para System.Text.Json ou [JsonProperty("key")] para Newtonsoft — e a diretiva using correspondente.
Posso gerar records em vez de classes?
Sim. O alternador de forma alterna entre public class (padrão) e public record, mantendo as mesmas auto-propriedades PascalCase e atributos JSON para que você possa escolher o estilo que seu código prefere.
O JSON é processado com privacidade?
Sim. Tudo roda no seu navegador com JSON.parse e JavaScript puro; o exemplo nunca é enviado, então colar payloads de API reais é seguro.

Mais ferramentas