Ferramenta Tool Kumar
JSON para classes C#
Gere modelos C# para System.Text.Json. A saída padrão dá a cada propriedade um atributo JsonPropertyName e usa required nos campos presentes em todos os registros do exemplo.
Como usar esta ferramenta
- Cole uma resposta representativa, incluindo registros cujos campos sejam diferentes.
- Revise a saída gerada e altere o nome raiz se necessário.
- Copie ou baixe o código e confira se os tipos correspondem ao contrato da sua API.
Exemplo prático
Esta saída vem do conversor integrado. Os dois preços de item permitem inferir um campo de ponto flutuante. Os valores null e string de note permitem inferir um campo que aceita null.
Entrada
{
"user-id": 42,
"profile": {
"city": "London",
"created_at": "2026-10-14T09:00:00Z"
},
"items": [
{
"price": 12,
"note": null
},
{
"price": 12.5,
"note": "gift"
}
]
}Saída
using System.Collections.Generic;
using System.Text.Json.Serialization;
public class Root
{
[JsonPropertyName("user-id")]
public required long UserId { get; set; }
[JsonPropertyName("profile")]
public required Profile Profile { get; set; }
[JsonPropertyName("items")]
public required List<Item> Items { get; set; }
}
public class Profile
{
[JsonPropertyName("city")]
public required string City { get; set; }
[JsonPropertyName("created_at")]
public required string CreatedAt { get; set; }
}
public class Item
{
[JsonPropertyName("price")]
public required double Price { get; set; }
[JsonPropertyName("note")]
public required string? Note { get; set; }
}
Desserialize com System.Text.Json
Copie as classes para o seu projeto .NET e ative as anotações de nulidade. Os atributos JsonPropertyName mapeiam as propriedades PascalCase para as chaves exatas da entrada.
Use uma versão do .NET cujo System.Text.Json aceite membros required, como .NET 7 ou mais recente. Configure as opções do serializador para sua aplicação.
using System.Text.Json;
Root? model = JsonSerializer.Deserialize<Root>(responseBody);Opções e casos especiais
- O padrão é System.Text.Json. Escolha Newtonsoft em “Mais opções” para gerar atributos JsonProperty de Newtonsoft.Json e usar JToken para valores desconhecidos.
- Os membros required gerados exigem C# 11 ou mais recente. A sintaxe de referências que aceitam null pressupõe que as anotações de nulidade estejam ativadas.
- Inteiros usam long, inteiros fora do intervalo de 64 bits com sinal usam decimal e valores fracionários usam double. decimal também tem um intervalo finito. Escolha uma representação personalizada para valores maiores.
- Um campo que aceita null ainda pode ser obrigatório quando todos os registros contêm sua chave. A presença obrigatória e a aceitação de null são regras separadas. Datas continuam sendo string.
Privado por padrão
Seu documento fica neste navegador. O Tool Kumar analisa, converte e cria downloads no seu dispositivo, sem conta e sem envio ao servidor.
JSON para classes C#: perguntas frequentes
- Ele usa System.Text.Json ou Newtonsoft.Json?
- System.Text.Json por padrão, com atributos JsonPropertyName. Escolha Newtonsoft no menu “Mais opções” do conversor para gerar atributos JsonProperty de Newtonsoft.Json.
- Qual versão de C# a saída exige?
- C# 11 ou mais recente para membros required. Ative os tipos de referência que aceitam null para usar string? e outras anotações de referência como previsto.
- Por que uma propriedade required também pode aceitar null?
- A chave aparece em todos os registros do exemplo, mas seu valor pode ser null. Por exemplo, required string? Note modela a presença separadamente do tipo do valor.
- Ele gera listas e classes aninhadas?
- Sim. Arrays de objetos viram List<Item>, e cada estrutura aninhada recebe uma classe gerada.
Ferramentas relacionadas
JSON para Java, JSON para TypeScript e Gerador de JSON Schema.