如何在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中显示它?
这是非常直接的:
- 声明要反序列化的类。 抓取Json文件。. NET NuGet Package.
- 反序列化字符串
- 绑定
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
- ,
使用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();
}
}
}