Nada mais chato do que ficar fazendo trabalho repetitivo, então ninguém merece ficar criando classes gigantes, mas se você tiver o JSON da classe tenho boas notícias, hoje vou ensinar como criar um classe no Visual Studio a partir de um JSON.
Muitas vezes é preciso criar classes de contrato que já tem o JSON escrito.
E isso dependendo do tamanho do JSON pode levar muito tempo.
Mas para nossa alegria existe uma funcionalidade no Visual Studio para nos ajudar.
A funcionalidade é o colar especial.
Porém para que ela esteja disponível é preciso que tenha o Visual Studio 2019 ou mais recente instalado.
Como criar uma classe no Visual Studio a partir de um JSON – Passo a Passo
O primeiro passo é ter um JSON.
É importante que seja um JSON válido.
Mas não faz diferença se o JSON está formatado ou não.
Segue um exemplo de JSON:
{
"glossary": {
"title": "example glossary",
"GlossDiv": {
"title": "S",
"GlossList": {
"GlossEntry": {
"ID": "SGML",
"SortAs": "SGML",
"GlossTerm": "Standard Generalized Markup Language",
"Acronym": "SGML",
"Abbrev": "ISO 8879:1986",
"GlossDef": {
"para": "A meta-markup language, used to create markup languages such as DocBook.",
"GlossSeeAlso": ["GML", "XML"]
},
"GlossSee": "markup"
}
}
}
}
}
Depois de validar o JSON é preciso copia-lo e então abrir o Visual Studio no projeto que queira criar a classe.
A criação da classe é feita no arquivo que está aberto no Visual Studio.
Então sugiro que crie o arquivo da classe primeiro.
Após isso é preciso ir em Editar -> Colar Especial -> Colar JSON como classes.
Se por algum motivo ocorrer um problema na cópia (se o JSON não for válido) o seguinte erro vai aparecer na tela:
Agora, se o JSON estiver válido teremos a seguinte saída:
Entendendo mais no detalhe a saída podemos ver que sempre é feita a criação de uma classe inicial.
public class Rootobject
{
public Glossary glossary { get; set; }
}
public class Glossary
{
public string title { get; set; }
public Glossdiv GlossDiv { get; set; }
}
public class Glossdiv
{
public string title { get; set; }
public Glosslist GlossList { get; set; }
}
public class Glosslist
{
public Glossentry GlossEntry { get; set; }
}
public class Glossentry
{
public string ID { get; set; }
public string SortAs { get; set; }
public string GlossTerm { get; set; }
public string Acronym { get; set; }
public string Abbrev { get; set; }
public Glossdef GlossDef { get; set; }
public string GlossSee { get; set; }
}
public class Glossdef
{
public string para { get; set; }
public string[] GlossSeeAlso { get; set; }
}
E então para cada objeto complexo dentro do JSON é feita a criação de uma classe.
Já para propriedades que são objetos simples é feita a conversão para os tipos básicos (inteiro, string, data por exemplo).
Vale lembrar que o nome das propriedades será exatamente igual ao que está no JSON, não é feita nenhuma conversão para qualquer padrão.
Caso você tenha uma versão mais antiga do Visual Studio é possível fazer o mesmo processo usando o site JSON2CSHARP.
Esse site inclusive tem mais funcionalidades que o próprio Visual Studio, como conversão na formatação e adição de namespaces.
Agora se você quiser mais dicas de .Net como essa confira aqui no nosso blog.