我想将我的 json 对象反序列化到我的学生班级
var result = JsonConvert.DeserializeObject<Student>(data);
我的 json 数据
{
"student":{
"fname":"997544",
"lname":"997544",
"subject":"IT",
"grade":"F"
}
}
我的学生班级
[Serializable]
public class Student
{
[JsonProperty("fname")]
public string FirstName{ get; set; }
[JsonProperty("lname")]
public string LastName{ get; set; }
[JsonProperty("subject")]
public string Subject { get; set; }
[JsonProperty("grade")]
public string Grade { get; set; }
}
该代码不起作用,错误提示:
无法将当前 JSON 对象(例如 {"name":"value"})反序列化为类型
因为该类型需要 JSON 数组(例如 [1,2,3])才能正确反序列化。
您的 JSON 字符串当前代表一个带有内部对象属性名为学生。如果您想反序列化为 Student 对象,您的 JSON 字符串应如下所示:
{
"fname":"997544",
"lname":"997544",
"subject":"IT",
"grade":"F"
}
如果更改 JSON 并不容易,您也可以使用 JObject 来帮助您,如下所示:
var jobject = JObject.Parse(jsonData);
var student = JsonConvert.DeserializeObject<Student>(jobject["student"].ToString());
或者正如其他人指出的那样,您可以简单地创建另一个类包装器并直接反序列化到该类包装器。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)