如何在来自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中显示它!
所以这很简单:
- 声明要反序列化的类。
- 抓住Json.NET NuGet包。
- 反序列化字符串。
- 绑定
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
并定义自己的列; 设计师驱动的工作,所以它不会影响我提供的代码。
- 使用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(); } } }