C#Json反序列化异常(“将值“ id”转换为类型'Eng_Tab.JsonData'时出错。路径'[0]',第1行,位置5”。)

穆罕默德·马赫(Mohamad Maher)

我是使用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 =结果;

rt2800

您需要对JsonDataJson字符串中的类型的对象进行反序列化。因此,您的JSON字符串应如下所示[{"ABC":"PQR", ...}]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档