How to display JSON data in a DataGridView in WinForms?
c#, datagridview, deserialization, json, winforms
Solution
So this is pretty straight forward:
- Declare a class to deserialize into.
- Grab the Json.NET NuGet Package.
- Deserialize the string.
- Bind the `DataGridView`.
Declare a class to deserialize into
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; }
}
Grab the Json.NET NuGet Package
Pull the `Json.NET` NuGet Package in from here http://www.nuget.org/packages/Newtonsoft.Json/6.0.3.
Deserialize the string
var result = JsonConvert.DeserializeObject<List<JsonResult>>(input);
Bind the `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.
Problem
This is the JSON data that I have: ``` {"testId":1,"testName":"HTML","minScore":20,"score":40,"date":"12-2-2014","status":"PASSED"}, {"testId":1,"testName":"JAVA","minScore":20,"score":10,"date":"12-2-2014","status":"FAILED"} ``` How can I show it in a DataGridView?