我有一个JavaScriptSerializer(),它可以从Web服务反序列化JSON,并且由于对列表的错误处理而在运行时失败。
这是我的班级:
public class LoginReply
{
public Userdata userdata { get; set; }
public List<string> errors { get; set; }
}
public class Userdata
{
public string username { get; set; }
public string section{ get; set; }
public string avatar { get; set; }
public string description { get; set; }
public string authkey { get; set; }
}
我用以下方法来消除:
LoginReply reply = new JavaScriptSerializer().Deserialize<LoginReply>(loginRespose);
我也尝试过:
LoginReply reply = new JavaScriptSerializer().Deserialize<List<LoginReply>>(loginRespose);
没有任何成功
(不能隐式转换类型 &#39; System.Collections.Generic.List&#39;至 &#39; Redacted.Redacted.LoginReply&#39)
答案 0 :(得分:1)
问题依赖于:
LoginReply reply = new JavaScriptSerializer().Deserialize<List<LoginReply>>(loginRespose);
您尝试将loginRespose反序列化为LoginReply列表,但在另一方面,您声明它不是列表。
对于第一次尝试,我们必须看到json被分配给loginRespose变量,因为它可能是null或无效的json,或者没有像LoginReply
类这样的属性。
如果json像LoginReplys
的列表一样,您可能需要将其反序列化为此类的列表,如下所示:
List<LoginReply> reply = new JavaScriptSerializer().Deserialize<List<LoginReply>>(loginRespose);