Сбой десериализации JSON с исключением System.StackOverflowException.
Я пытаюсь десериализовать следующую сущность. Нужна помощь, почему это вызывает проблему.
var workingJSONString = "{\"FBTOrLeaseYear\":{\"DateFrom\":\"2019-03-02T00:00:00\",\"DateTo\":\"2020-03-01T00:00:00\"},\"Registration\":\"155SQN\",\"NovatedLeaseFortnightBenefitGroups\":[],\"NovatedLeaseAnnualBenefitGroups\":[]}";
var exceptionJSONString = "{\"FBTOrLeaseYear\":{\"DateFrom\":\"2019-03-02T00:00:00\",\"DateTo\":\"2020-03-01T00:00:00\"},\"Registration\":\"155SQN\",\"NovatedLeaseFortnightBenefitGroups\":[{\"BenefitGroupID\":1,\"BenefitGroupName\":\"Fuel\",\"TotalAnnualBudgetAmount\":4992.0000,\"TotalFortnightBudgetAmount\":192.0000,\"TotalSpentToDate\":3327.43,\"TotalFortnightSpent\":141.59276595744680851063829788,\"TotalProjAnnualAmount\":3681.4119148936170212765957447,\"TotalVariationAmount\":1310.5880851063829787234042553,\"AverageSpentPercentage\":14.645499465811966666666666667,\"NovatedLeaseBudgetSpentDataForBenefits\":[]}],\"NovatedLeaseAnnualBenefitGroups\":[]}";
Test.Entities.NovatedLeaseBenefitsBudgetSpentFBTYear novatedLeaseBenefitsBudgetSpentFBTYearResponse = new Test.Entities.NovatedLeaseBenefitsBudgetSpentFBTYear();
novatedLeaseBenefitsBudgetSpentFBTYearResponse = JsonConvert.DeserializeObject<Test.Entities.NovatedLeaseBenefitsBudgetSpentFBTYear>(exceptionJSONString); // Exception is thrown here
Объекты:
При десериализации объекта "Test.Entities.NovatedLeaseBenefitsBudgetSpentFBTYear",
Я получаю исключение "System.StackOverflowException" . Можно ли мне помочь, почему десеризарион терпит неудачу для этого JSON.
public class NovatedLeaseBenefitsBudgetSpentFBTYear
{
public FBTOrLeaseYear FBTOrLeaseYear { get; set; }
public string Registration { get; set; }
public List<NovatedLeaseBenefitGroup> NovatedLeaseFortnightBenefitGroups { get; set; }
public List<NovatedLeaseBenefitGroup> NovatedLeaseAnnualBenefitGroups { get; set; }
}
public class NovatedLeaseBenefitGroup
{
public int BenefitGroupID { get; set; }
public string BenefitGroupName { get; set; }
public double TotalAnnualBudgetAmount { get; set; }
public double TotalFortnightBudgetAmount { get; set; }
public double TotalSpentToDate { get; set; }
public double TotalFortnightSpent { get; set; }
public double TotalProjAnnualAmount { get; set; }
public double TotalVariationAmount { get; set; }
public double AverageSpentPercentage { get; set; }
public List<NovatedLeaseBudgetSpentDataForBenefit> NovatedLeaseBudgetSpentDataForBenefits { get; set; }
}
public class NovatedLeaseBudgetSpentDataForBenefit
{
public int BenefitId { get; set; }
public string BenefitName { get; set; }
public double AnnualBudgetAmount { get; set; }
public double FortnightBudgetAmount { get; set; }
public double SpentToDate { get; set; }
public double FortnightSpent { get; set; }
public double ProjAnnualAmount { get; set; }
public double VariationAmount { get; set; }
public double SpentPercentage { get; set; }
}
public class FBTOrLeaseYear
{
public string DateFrom { get; set; }
public string DateTo { get; set; }
}