JSON para C# – Gere classes ou records a partir do JSON
Converta um JSON em classes C# ou records, com tipos inferidos, propriedades e classes aninhadas prontas para o projeto .NET.
Código gerado
using System.Collections.Generic;
using System.Text.Json.Serialization;
public class Endereco
{
[JsonPropertyName("cidade")]
public string Cidade { get; set; }
[JsonPropertyName("uf")]
public string Uf { get; set; }
}
public class Root
{
[JsonPropertyName("id")]
public long Id { get; set; }
[JsonPropertyName("nome")]
public string Nome { get; set; }
[JsonPropertyName("ativo")]
public bool Ativo { get; set; }
[JsonPropertyName("saldo")]
public double Saldo { get; set; }
[JsonPropertyName("tags")]
public List<string> Tags { get; set; }
[JsonPropertyName("endereco")]
public Endereco Endereco { get; set; }
[JsonPropertyName("ultimoAcesso")]
public object? UltimoAcesso { get; set; }
}
Os tipos são inferidos do exemplo: campos ausentes em parte dos itens de um array viram opcionais, e valores null viram anuláveis. Tudo roda no navegador — o JSON não é enviado a nenhum servidor.
Como usar esta ferramenta
- Cole o JSON de exemplo
- Escolha entre classe e record
- Copie o código gerado
- Ajuste namespace e atributos no projeto
Sobre esta ferramenta
O que é
Record em C# é um tipo de referência voltado a dados, com igualdade por valor e sintaxe enxuta. Classes continuam sendo a escolha quando é preciso mutabilidade ou herança complexa.
Quando usar
- Modelar a resposta de uma API consumida por um serviço .NET
- Criar DTOs de integração com sistema legado
- Converter payload de fila em objeto tipado
- Gerar a base da desserialização com System.Text.Json
- Evitar digitar dezenas de propriedades
Perguntas frequentes
- Como mapear snake_case do JSON para PascalCase?
- Use JsonPropertyName no atributo da propriedade, ou configure PropertyNamingPolicy no JsonSerializerOptions para converter automaticamente.
- Campos que podem vir nulos são marcados?
- O gerador infere pelo exemplo colado. Com nullable reference types ativado, revise quais propriedades devem receber ? no tipo.
- Record ou class para DTO?
- Record cobre bem o caso de dados que só trafegam, por causa da igualdade por valor e da sintaxe curta. Class quando o objeto precisa mudar de estado.