我是使用C#刚接触Json的人。我正在尝试反序列化JSON字符串以显示到数据网格中。我成功从服务器获取了JSON字符串,但是在尝试反序列化时,它引发了以下异常:
Newtonsoft.Json.JsonSerializationException:将值“ id”转换为类型“ Eng_Tab.JsonData”时出错。路径'[0]',第1行,位置5。---> System.ArgumentException:无法将System.String强制转换或转换为Eng_Tab.JsonData。
这是数据类:
公共类JsonData {public int id {get; 放; }公用字符串lec {get; 放; }公用字符串sec1 {get; 放; }公用字符串sec2 {get; 放; }公用字符串sec3 {get; 放; }公用字符串sec4 {get; 放; }公用字符串sec5 {get; 放; }公用字符串sec6 {get; 放; }公用字符串sec7 {get; 放; }公用字符串sec8 {get; 放; }公用字符串sec9 {get; 放; }公用字符串sec10 {get; 放; }
public int h { get; set; } public int h1 { get; set; } public int h2 { get; set; } public int h3 { get; set; } public int h4 { get; set; } public int h5 { get; set; } public int h7 { get; set; } public int h8 { get; set; } public int h9 { get; set; } public int h10 { get; set; } public int m { get; set; } public int m1 { get; set; } public int m2 { get; set; } public int m3 { get; set; } public int m4 { get; set; } public int m5 { get; set; } public int m6 { get; set; } public int m7 { get; set; } public int m8 { get; set; } public int m9 { get; set; } public int m10 { get; set; } }
这是Json字符串:
[“ id”:“ 1”,“ h”:“ 7”,“ m”:“ 0”,“ lec”:“”,“ h1”:“ 0”,“ m1”:“ 0”,“ sec1 “:”“,” h2“:” 10“,” m2“:” 0“,” sec2“:” Abdelrahman Mohamed401119343000“,” h3“:” 10“,” m3“:” 0“,” sec3“: “ Abdelrahman Mohamed401119343000”,“ h4”:“ 5”,“ m4”:“ 0”,“ sec4”:“ A401119343000”,“ h5”:“ 5”,“ m5”:“ 0”,“ sec5”:“ A401119343000“,” h6“:” 5“,” m6“:” 0“,” sec6“:” A401119343000“,” h7“:” 5“,” m7“:” 0“,” sec7“:” A401119343000“ ,”h8“:” 5“,” m8“:” 0“,” sec8“:” A401119343000“,” h9“:” 18“,” m9“:” 0“,” sec9“:” Abdelrahman Mohamed401119343000“,” h10 “:” 0“,” m10“:” 0“,” sec10“:”设置秒“]
这是我的C#代码:
字符串qry =“ de = e1&id = 1”;
WebRequest request = WebRequest.Create(“ php链接” + qry);
Web响应响应= request.GetResponse();
StreamReader reader =新的StreamReader(response.GetResponseStream(),Encoding.ASCII);
字符串jsonData = reader.ReadToEnd();
jsonData = jsonData.Replace(“ {”,“ [”).Replace(“}”,“]”);
MessageBox.Show(jsonData);
列表
<JsonData>
结果= JsonConvert.DeserializeObject<List<JsonData>>
(jsonData);metroGrid1.DataSource =结果;
您需要对JsonData
Json字符串中的类型的对象进行反序列化。因此,您的JSON字符串应如下所示[{"ABC":"PQR", ...}]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句