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?

Original source