2016-09-18 5 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은 다음과 같습니다 : 후

public class MyClass 
{ 
    public List<Nachrichten_Felder> data { get; set; } 
} 
public class Nachrichten_Felder 
{ 
    public string Datum { get; set; } 
    public string Nachricht { get; set; } 
} 

다운로드가 잘 작동하고 :

{ "nachrichten": [ { "Nachricht": "text", "Datum": "datum" }, { "Nachricht": "text", "Datum": "datum" }, { "Nachricht": "text", "Datum": "datum" }, { "Nachricht": "text", "Datum": "datum" } ] } 

그리고 여기 내 클래스입니다

내 코드입니다 몇 초 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

관련 문제