请帮忙!
反序列化时出现此错误:
无法将“System.String”类型的对象转换为类型
'系统.集合.通用.列表'
来自客户端的 JSON 字符串:
"\"[{\\"id\\":\\"18_0_2_0\\",\\"and\\":\\"您可以输入自由文本来代替*\\"},{\\"id\\":\\"23_1_3_1\\",\\"and\\":\\"刷新按钮\\"},{\\"id\\": \\"11_2_1_2\\",\\"和\\":\\"False\\"}]\""
Edit:未转义(见评论):
[{"id":"18_0_2_0","and":"您可以输入自由文本来代替*"},{"id":"11_2_1_2","ans":"False"}]
JavaScriptSerializer serializer = new JavaScriptSerializer();
List<RawAnswer> ListAnswers = serializer.Deserialize<List<RawAnswer>>(str);
[Serializable]
public class RawAnswer
{
public string QuestionID { get; set; }
public string Answer { get; set; }
public RawAnswer() { }
}
public class AnswerList
{
public List<RawAnswer> RawAnswer { get; set; }
}
你原来的json字符串(在aKzenT编辑之前)是双重转义的,我使用了var str2 = Regex.Unescape(str);
获取实际的字符串。
public class RawAnswer
{
public string id { get; set; }
public string ans { get; set; }
}
并且不需要AnswerList
现在你的代码可以工作了
JavaScriptSerializer serializer = new JavaScriptSerializer();
List<RawAnswer> ListAnswers = serializer.Deserialize<List<RawAnswer>>(str);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)