C#-  
Convertendo JSON para DataTable
    
    
    ![]()  | 
    Hoje veremos como converter dados no formato JSON para um DataTable exibindo as informações em um GridView em uma aplicação Windows Forms. | 
Neste artigo vamos consumir dados REST no formato JSON, e, como exemplo vou obter os dados do serviço https://jsonplaceholder.typicode.com/ que fornece algumas APIs para podermos consumir.
Atualmente temos 6 recursos disponíveis acessados via url :
| /posts | 100 posts | 
| /comments | 500 comments | 
| /albums | 100 albums | 
| /photos | 5000 photos | 
| /todos | 200 todos | 
| /users | 10 users | 
Vejamos então como consumir esses dados REST no formato JSON e convertê-los para um DataTable exibindo-os em um controle DataGridView no Windows Forms.
Recursos usados:
Criando o projeto Windows Forms
Crie um projeto Desktop do tipo Windows Forms (.NET Framework) com o nome WF_RestTable no VS 2017 Community.
No formulário padrão Form1.cs inclua os seguintes controles a partir da Toolbox:
Disponha os controles conforme o leiaute abaixo:

A seguir via menu Tools inclua uma referência no projeto ao pacote Newtonsoft.Json.
Agora no evento Click do botão de comando inclua o código abaixo no arquivo code-behind Default.aspx.cs
		using Newtonsoft.Json;
using System;
using System.Data;
using System.IO;
using System.Net;
using System.Windows.Forms;
		namespace WF_RestTable
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
		        private void btnAcessar_Click(object sender, EventArgs e)
        {
            string json = (new WebClient()).DownloadString(txtUrl.Text);
            dgvDados.DataSource = JsonConvert.DeserializeObject<DataTable>(json);
        }
    }
}
		 | 
	
Neste código estamos usando a classe WebClient e fazendo o download dos dados disponbilizado pela API definida pela Uri informada em txtUrl.
A seguir usando o método DeserializeObject<DataTable> convertemos os dados no formato json para um DataTable e exibimos no controle DataGridView.
Simples assim...
Executando o projeto e acessando as API no endereco https://jsonplaceholder.typicode.com/ iremos obter o resultado abaixo:
![]()  | 
	
Tudo isso com duas linhas de código.
É claro que existem outras formas de obter o mesmo resultado. A seguir vejamos outra abordagem onde definimos um método para obter os dados usando a classe WebRequest para fazer a requisição para a Uri e obter os dados no formarto JSON deserializando para um DataTable:
		        private JArray GetRESTDados(string uri)
        {
            var webRequest = (HttpWebRequest)WebRequest.Create(uri);
            var webResponse = (HttpWebResponse)webRequest.GetResponse();
            var reader = new StreamReader(webResponse.GetResponseStream());
            string s = reader.ReadToEnd();
            return JsonConvert.DeserializeObject<JArray>(s);
        }
		 | 
	
Agora basta chamar o método passando a Uri e retornando o datatable para o DataGridView:
		        private void btnAcessar_Click(object sender, EventArgs e)
        {        
            dgvDados.DataSource = GetRESTDados(txtUrl.Text);
        }
		
  | 
	
Pegue o 
projeto aqui:  
 WF_RestTable.zip (sem as 
referências)
							
João 
14:21
| 
    
    Veja os 
    Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique 
	e confira !  
 Quer migrar para o VB .NET ? 
 Quer aprender C# ?? 
 Quer aprender os conceitos da Programação Orientada a objetos ? Quer aprender o gerar relatórios com o ReportViewer no VS 2013 ? Quer aprender a criar aplicações Web Dinâmicas usando a ASP .NET MVC 5 ?  | 
  
Referências:
Super DVD Vídeo Aulas - Vídeo Aula sobre VB .NET, ASP .NET e C#
Super DVD C# - Recursos de aprendizagens e vídeo aulas para C#
ASP .NET Core 2 - MiniCurso Básico - Macoratti
ASP .NET Core - Macoratti
Conceitos - .NET Framework versus .NET Core - Macoratti
ASP .NET Core - Conceitos Básicos - Macoratti.net
C# - Converter de JSON para Object e vice-versa - Macoratti
VB .NET - Exibindo dados JSON em um DataGridView - Macoratti
VB .NET - Consumindo um Web Service JSON ... - Macoratti.net
Serializando/Deserializando JSON usando contrato de ... - Macoratti
VB .NET - Tratando JSON com LINQ - Macoratti
C# - Convertendo DataTable para JSON - Macoratti