This is the JSON data that I have:
{"testId":1,"testName":"HTML","minScore":20,"score":40,"date&qu
So this is pretty straight forward:
DataGridView
.public class JsonResult
{
public int testId { get; set; }
public string testName { get; set; }
public int minScore { get; set; }
public int score { get; set; }
public DateTime date { get; set; }
public string status { get; set; }
}
Pull the Json.NET
NuGet Package in from here http://www.nuget.org/packages/Newtonsoft.Json/6.0.3.
var result = JsonConvert.DeserializeObject<List<JsonResult>>(input);
DataGridView
dataGridView.DataSource = result;
NOTE: this is the most primitive way of binding to the grid. There are many more options that you can leverage. One that comes to mind is, turning off AutoGenerateColumns
and defining your own columns; designer-driven work so it wouldn't affect the code I've provided.
- using Newtonsoft.Json.Linq;
- using System.Net;
void get_response()
{
WebClient wp = new WebClient();
string url="your json url";
var response=wp.DownloadString(url)
get_data(response)
}
void get_data(string response)
{
datagridview.Rows.clear();`enter code here`
JArray fetch= JArray.Parse(response);
if(fetch.Count()>0)
{
for(int i=0;datagridview.Rows.Count>i;i++)
{
int n=datagridview.Rows.Add();
datagridview.Rows[n].Cells[0].Value=fetch[i]["Json
ObjectName1"].ToString();
}
}
}
There's a simpler way to do this. You don't need to create a new class. Simply do:
DataTable dataTable = (DataTable)JsonConvert.DeserializeObject(jsonString, (typeof(DataTable)));
dataGridView.DataSource = dataTable;
No need for a custom class. You'll still need Newtonsoft though.