У меня есть следующий 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, не зная типов (полный рабочий день, неполный рабочий день, sub). Я пытался сделать это в классе «Счет», но это не сработало:
[DataContract]
public class Counts
{
[DataMember(Name = "byType")]
public KeyValuePair<string, int> byType;
}