如何在WinForms的DataGridView中显示JSON数据

本文关键字:显示 JSON 数据 DataGridView WinForms | 更新日期: 2023-09-27 18:04:28

这是我的JSON数据:

{"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"}

我如何在DataGridView中显示它?

如何在WinForms的DataGridView中显示JSON数据

这是非常直接的:

  1. 声明要反序列化的类。
  2. 抓取Json文件。. NET NuGet Package.
  3. 反序列化字符串
  4. 绑定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; }
}
抓取Json。. NET NuGet包

从这里拉Json.NET NuGet包http://www.nuget.org/packages/Newtonsoft.Json/6.0.3.

反序列化字符串

var result = JsonConvert.DeserializeObject<List<JsonResult>>(input);

绑定DataGridView

dataGridView.DataSource = result;

注意:这是绑定到网格的最原始的方式。你可以利用更多的选择。首先想到的是,关闭AutoGenerateColumns并定义自己的列;设计师驱动的工作,所以它不会影响我提供的代码。

有一种更简单的方法。您不需要创建新类。只是做:

DataTable dataTable = (DataTable)JsonConvert.DeserializeObject(jsonString, (typeof(DataTable)));
dataGridView.DataSource = dataTable;

不需要定制类。你仍然需要Newtonsoft

    使用Newtonsoft.Json.Linq
  1. ,
  2. 使用System.Net
  3. ,
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();
        }
    }
}