Pular para o conteúdo principal

Modelando JSON em Classe C# com Visual Studio 2017

Quando se trabalha com APIs externas é muito comum se ter a necessidade de modelar o JSON recebido via requisição http em uma classe C#. Ao realizar tal transformação, torna-se possível a manipulação dos dados rebidos utilizando objetos em C# ao instanciar a classe modelada. É possível encontrar vários sites online que fazem essa transformação, como, por exemplo o Json2csharp. Mas você sabia que dá para fazer o mesmo utilizando o próprio Visual Studio? Neste post, vamos fazer um exemplo de como atingir esse resultado. Segue o passo a passo:

1) Capture um exemplo do JSON que você deseja transformar em classe C#
Com o endpoint da API em mãos, você pode copiar em um navegador e teclar enter para fazer uma requisição GET ao servidor. Assim, você receberá o Json como resposta. Outra maneira seria utilizar um software, como o Postman para realizar a sua requisição e obter o json. Assim, você obterá algo parecido como isso:



2) Crie uma classe pelo Visual Studio.
Clique com o botão direito sobre mouse sobre o seu projeto e adicione uma classe a ele. Não vou dar detalhes de como criar um classe neste post (sorry!).

3) Apague o código referente a classe.
Tire o código referente a classe gerada automaticamente pelo VS. Ou seja, apague tudo que esteja dentro das chaves do namespace. Vai ficar algo parecido como isso:



4) Copie o JSON que você tinha obtido e cole como uma classe.
Com o arquivo da sua classe aberta, clique no lugar onde você irá colar sua classe. Vá em Editar, depois em Colar Especial e, finalmente, clique em Colar JSON como classes. Pronto! Você não precisa mais utilizar geradores de classes online. O Visual Studio já faz tudo para você.


Abaixo segue como ficou o JSON após ser transformado em classe. =D



Caso você queira colocar o nome das propriedades com letra maísculas, basta decorá-las com  [JsonProperty("nomeQueVemDoJson")] acima delas. Por exemplo, se tem uma propriedade com o nome url e você quer colocar como Url, então é só fazer assim:

[JsonProperty("url")]
public string Url { get; set; }

Dessa maneira, você irá conseguir, por exemplo, utilizar o método get de Url com inicial maiúscula (respeitando o padrão) sem ter problemas com a desserialização do JSON que será recebido via API.

Comentários

Postagens mais visitadas deste blog

Curso Flutter | Aula 0 | Sobre o Curso

Fala galera! Me chamo Raul, tenho experiência com programação para Android usando Java e Kotlin. Como gostei bastante do novo SDK lançado pela Google para criar aplicativos para Android e iOS utilizando apenas um único código, resolvi aprender Flutter! Como sei que a melhor forma de aprender é ensinando, resolvi criar este curso. No exato momento em que escrevo esta postagem, ainda não sei nada de Flutter! Minha intenção é ir aprendendo e ir montando o curso à medida em que evoluo. Portanto, meu objetivo inicial aqui será organizar as ideias de como o curso será montado: quais tópicos serão abordado e por quais meios eles serão passados. O curso de Flutter a que proponho fazer será compartilhado gratuitamente de duas maneira: por este blog de maneira escrita e por vídeos no Youtube. Um meio complementará o outro. Além disso, o curso terá as seguintes aulas: Aula 1.0 - O que é e quais as características principais do Flutter? Aula 2.0 - Conhecendo a linguagem Dart Aul

Dicas para Freelancer

Neste post estou reunindo constantemente informações importantes para quem é ou deseja se tornar um freelancer. É importante escolher um nicho de mercado que passe pela seguinte intersecção: paixão + demanda + habilidade. Texto a ser lido:  Freelancer Android . Ferramentas para auxilar na escolha do nome do negócio: NameMesh , DomainR e DomainScope . Sites para registrar domínios: RegistroBr e GoDaddy . Sites de hospedagem com Wordpress: BlueHost e One .  Sites e apps de design para criar uma cover photo para sua página no Facebook (social media) e também criar currículos, logotipos e etc: Canva , Posteroid e Adobe Comp CC . Ferramenta para gerenciamento de tarefas: Asana . Dá para editar regras no Asana para os clientes, apenas poderem visualizar as informações. Banco de imagens gratuitas: Pexels  e Unsplash . Sites de Freelancer:  Workana , Crowd ,  Freelancer ,  99freelas , Fiverr , Upwork  e  GetNinjas . Melhor cobrar um preço por projeto em vez de por hora. Cob

Cursos Gratuitos de Flutter e Dart

Aqui você encontrará um repositório de cursos de Flutter e Dart gratuitos. A maioria dos cursos são em inglês. Cheguei a encontrar cursos gratuitos de Flutter em alemão na udemy, mas preferi não colocar nesta lista. Caso tenha mais sugestões de cursos gratuitos, por favor, escreva nos comentários deste post, que em breve acrescentarei a lista. Vamos estudar Flutter galera! ;) Build Native Mobile Apps with Flutter by Google (inglês) https://www.udacity.com/course/ud905 Dart Academy Boot Camp (inglês) https://da-bootcamp.firebaseapp.com/?course=start_programming_dart The Complete Flutter App Development Course for Android, iOS (inglês) https://www.udemy.com/the-complete-flutter-app-development-course-for-android-ios/ Meu mini-curso (português) http://raulfmiranda.blogspot.com/2018/10/curso-flutter-sobre-curso.html   Flutter Crash Course (inglês) https://fluttercrashcourse.com/ Learn Flutter - Beginners Course (inglês) https://www.udemy.com/learn-flutter-beginn