2017-03-15 134 views
-3

我正在尋找一種解決方案,將json響應綁定到winform中的datagrid。我一直在嘗試最後3天,但沒有辦法順利。對JSONJSON字符串解析和列表元素在Winform中綁定到DataGrid c#

我的C#類

public class RootObject 
{ 
    public List<string> uid { get; set; } 
    public List<string> email { get; set; } 
    public List<string> join { get; set; } 
    public List<string> mobile { get; set; } 
    public List<string> name { get; set; } 
    public List<string> state { get; set; } 
    public List<string> district { get; set; } 
    public List<string> address { get; set; } 
    public List<string> pincode { get; set; } 
    public List<string> balance { get; set; } 
    public bool error { get; set; } 
    public string error_msg { get; set; } 
} 

我的JSON響應 -

var jsonlist = JsonConvert.DeserializeObject<RootObject>(jsonResponse); 

DataRow rows = this.USER_TABLE.NewRow(); 

USER_TABLE.Rows.Add(jsonlist.uid.ToArray()); 
USER_TABLE.Rows.Add(jsonlist.email.ToArray()); 
USER_TABLE.Rows.Add(jsonlist.join.ToArray()); 
USER_TABLE.Rows.Add(jsonlist.mobile.ToArray()); 
USER_TABLE.Rows.Add(jsonlist.name.ToArray()); 
USER_TABLE.Rows.Add(jsonlist.state.ToArray()); 
USER_TABLE.Rows.Add(jsonlist.district.ToArray()); 
USER_TABLE.Rows.Add(jsonlist.address.ToArray()); 
USER_TABLE.Rows.Add(jsonlist.pincode.ToArray()); 
USER_TABLE.Rows.Add(jsonlist.balance.ToArray()); 
-

{"uid":["58924a301801e2.01873036","58c12008715ac3.83978983","58c2c524060d34.25876386","58c61faae8abd4.23607623"],"email":["[email protected]","[email protected]","[email protected]","[email protected]"],"join":["2017-02-02 02:20:56","2017-03-09 09:27:40","2017-03-10 15:24:25","2017-03-13 00:00:00"],"mobile":["2147483647","2147483647","214748897","7002352089"],"name":["saurabh saikia","RATUL BHUYAN","AZHAR UDDIN","mon saikia"],"state":["assam","assam","ASSAM","assam"],"district":["jorhat","Jorhat","NAGAON","jrt"],"address":["jorhat","Jorhat","BAGARIGURI, JURIA","jrt"],"pincode":["785001","785001","785001","123456"],"balance":["1.4500","0.0000","0.0000","0.0000"],"error":false,"error_msg":"User Sucessfully Registred "} 

在按鈕的單擊事件調用Web服務我反序列化響應,並嘗試使用添加到數據網格後

我附上輸出 - DataGridView with data

+0

如果它不工作,實際發生了什麼? –

+0

它將值添加到列而不是行說--- uid電子郵件加入所有列都由uid填充 –

+0

您可以將代碼綁定到數據網格嗎? –

回答

0

將數據添加到DataTable的代碼不正確。每行應包含每個列表屬性中的一個元素

var jsonlist = JsonConvert.DeserializeObject<RootObject>(jsonResponse); 

for(int i=0; i < jsonlist.uid.Count; i++) 
    USER_TABLE.Rows.Add(
      jsonlist.uid[i], 
      jsonlist.email[i], 
      jsonlist.join[i], 
      jsonlist.mobile[i], 
      jsonlist.name[i], 
      jsonlist.state[i], 
      jsonlist.district[i], 
      jsonlist.address[i], 
      jsonlist.pincode[i], 
      jsonlist.balance[i]); 
+0

感謝它的工作。 –