【发布时间】:2011-07-27 07:47:42
【问题描述】:
我有以下 JSON:
\"success\":true,
\"requestSecs\":0.084988117218,
\"body\":{
\"countsByStatus\":[
{
\"status\":\"yes\",
\"counts\":{
\"byType\":{
\"fulltime\":0,
\"parttime\":0,
\"sub\":0,
},
\"total\":0
}
}
我正在使用以下类将其反序列化为 .net:
[DataContract]
public class ResponseAttendanceList
{
[DataMember(Name = "success")]
public string Success;
[DataMember(Name = "requestSecs")]
public string RequestSecs;
[DataMember(Name = "body")]
public AttendanceList AttendanceList;
}
[DataContract]
public class AttendanceList
{
[DataMember(Name = "countsByStatus")]
public List<Status> countsByStatus;
}
[DataContract]
public class Status
{
[DataMember(Name = "status")]
public string status;
[DataMember(Name = "counts")]
public Counts counts;
}
[DataContract]
public class Counts
{
[DataMember(Name = "byType")]
public ByType byType;
}
[DataContract]
public class ByType
{
[DataMember(Name = "fulltime")]
public int fulltime;
[DataMember(Name = "parttime")]
public int parttime;
[DataMember(Name = "sub")]
public int sub;
}
问题是,反序列化到 ByType 类中的类型实际上是动态的,所以可以改变。如何在不知道类型(全职、兼职、子)的情况下反序列化此 JSON。我尝试在“计数”类上这样做,但没有奏效:
[DataContract]
public class Counts
{
[DataMember(Name = "byType")]
public KeyValuePair<string, int> byType;
}
【问题讨论】:
-
对不起,我回答了你的问题,但忘记了链接。固定。