下面的代码片段是Json的回复。我想将它绑定到自定义类。 由于我是json的新手,请有人建议我如何实现这一目标。
{"status":"success",
"studentInfo":{"RegNo":"ABCD","ID":"123",
"parentsDetails":[
{"Parent_Name":"Anny","Gender":"M"},
{"Parent_Name":"Danny","Gender":"F"}],
"Student_Name":"Alex",
"Student_Status":"Active"}
}
答案 0 :(得分:1)
这是为json对象生成的类:
public class ParentsDetail
{
public string Parent_Name { get; set; }
public string Gender { get; set; }
}
public class StudentInfo
{
public string RegNo { get; set; }
public string ID { get; set; }
public List<ParentsDetail> parentsDetails { get; set; }
public string Student_Name { get; set; }
public string Student_Status { get; set; }
}
public class RootObject
{
public string status { get; set; }
public StudentInfo studentInfo { get; set; }
}
您可以将其用作
string json = @"{'status':'success', 'studentInfo':{'RegNo':'ABCD','ID':'123','parentsDetails':[{'Parent_Name':'Anny','Gender':'M'},{'Parent_Name':'Danny','Gender':'F'}],'Student_Name':'Alex','Student_Status':'Active'} }"
RootObject jsonObject = JsonConvert.DeserializeObject<RootObject>(json);
答案 1 :(得分:1)
首先,您需要将JSON属性映射到自定义类中,可能与此类似:
public class Student
{
public string status { get; set; }
public string studentInfo { get; set; }
//and so on...
}
然后,我建议您使用JSON.NET(Newtonsoft)来帮助您处理JSON数据。实际的反序列化可能如下所示:
Student myStudentData = JsonConvert.DeserializeObject<Student>(yourInputJson);
myStudentData
将允许您访问自定义类中定义的所有JSON属性。此外,请注意,只会映射您在自定义类中定义的属性。例如,即使您的JSON包含类似errorCode
属性的内容,如果您未在Student
类中定义它,也不会提取它。您应该注意的另一件事是,如果您的输入JSON不包含您在类中定义的属性之一,则反序列化将引发异常。因此,例如,如果您输入的内容不包含status
属性,那么您将获得例外。