2016-09-18 124 views
0

我想填充一個datagridview(dgvNachrichten)。C#JSON.net填充DataGridView

它有兩列(「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窗體出現,但沒有內容... 「Datum 「在我的JSON中必須出現在」Datum「列中(每個Datum都有一個新行),而」Nachrichten「也是如此。

也許有人可以幫我嗎?

回答

1

您必須JSON文件映射data屬性值:

public class MyClass 
{ 
    [JsonProperty("nachrichten")] 
    public List<Nachrichten_Felder> data { get; set; } 
} 

也結合DataGridView到集合:

dgvNachrichten.DataSource = des.data; 

不要忘記處置WebClientStreamReader

+0

嗯,這並沒有工作...仍然沒有文字在網格中... – Francis

+0

@Francis - 見更新。 –

+0

完美。非常感謝你! – Francis