2017-03-15 137 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

感谢它的工作。 –