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.
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
Postar um comentário