我想填充datagridview(dgvNachrichten)。
它有两列(“Datum”和“Nachrichten”)。
这是我的代码:
try
{
WebClient webClient = new WebClient();
webClient.DownloadFile(Config.URL_MAIN, @Environment.GetEnvironmentVariable("TEMP") + "\\" + "temp.json");
StreamReader sr = new StreamReader(@Environment.GetEnvironmentVariable("TEMP") + "\\" + "temp.json");
string line = sr.ReadToEnd();
var response = line;
var des = (MyClass)JsonConvert.DeserializeObject(response, typeof(MyClass));
dgvNachrichten.DataSource = des;
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
我的JSON看起来像这样:
{ "nachrichten": [ { "Nachricht": "text", "Datum": "datum" }, { "Nachricht": "text", "Datum": "datum" }, { "Nachricht": "text", "Datum": "datum" }, { "Nachricht": "text", "Datum": "datum" } ] }
这是我的课程:
public class MyClass
{
public List<Nachrichten_Felder> data { get; set; }
}
public class Nachrichten_Felder
{
public string Datum { get; set; }
public string Nachricht { get; set; }
}
下载工作正常,几秒钟后出现带有GridView的表单,但没有内容...... 我的JSON中带有“Datum”的部分必须出现在“Datum”列中(对于每个Datum一个新行)和“Nachrichten”相同。
也许有人可以帮助我?
答案 0 :(得分:1)
您必须将data
属性映射到json文件中的值:
public class MyClass
{
[JsonProperty("nachrichten")]
public List<Nachrichten_Felder> data { get; set; }
}
同时将DataGridView
绑定到集合:
dgvNachrichten.DataSource = des.data;
不要忘记处置WebClient
和StreamReader
。