如何在来自HttpWebResponse的c#windows应用程序中的dataGridView中显示Json DATA

json数据,我来自HTTPWebResponse

[{ “testId”:1, “测试名”: “HTML”, “MinScore是”:20, “得分”:40, “日期”: “2014年12月2日”, “状态”: “通过”},{ “testId”:1, “测试名”: “JAVA”, “MinScore是”:20, “分数”:10, “日期”: “2014年12月2日”, “状态”: “FAILED”}]


 HttpResponseMessage Response = await client.PostAsync("http://motivtechindia.com/quiz/ws/empquizs", content); int statusCode = (int)Response.StatusCode; string results = await Response.Content.ReadAsStringAsync(); MessageBox.Show(results);`enter code here` 

___________________________________________________________________________________________消息框显示:

[{ “testId”:1, “测试名”: “HTML”, “MinScore是”:20, “得分”:40, “日期”: “2014年12月2日”, “状态”: “通过”},{ “testId”:1, “测试名”: “JAVA”, “MinScore是”:20, “分数”:10, “日期”: “2014年12月2日”, “状态”: “FAILED”}]


现在请告诉我如何deserilise并在datagridview中显示它!

所以这很简单:

  1. 声明要反序列化的类。
  2. 抓住Json.NET NuGet包。
  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>(input); 

绑定DataGridView

 dataGridView.DataSource = result; 

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

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