我讨厌添加到5,000 多个 JSON.NET 反序列化错误,但是任何人都可以在下面的 JSON 中看到任何可能导致问题的内容吗?JSONLint 和JSONViewer都表明该字符串是有效的,事实上它已经被 JSON.NET 序列化了,没有任何问题!它所代表的 Tariff 对象的类定义也在下面。
这让我完全被难住了——当我使用 .NET 的 JavascriptSerialiser 类时,我也遇到了完全相同的问题。它可以很好地序列化,但是在反序列化时会引发以下错误:
转换值 [JSON 字符串下方] 'emAPI.ClassLibrary.Tariff' 时出错。路径 '',第 1 行,位置 374。
第 1 行 pos 374 位于字符串末尾的 0 和 0.5 中的句点之间,表示double StandingChargeValue
在类中。
有人对如何解决有任何想法吗?
谢谢,大卫
JSON字符串
{ "StandingChargePeriod": { "Id": 4, "Length": "Weekly", "NumbDays": 7 }, "Bands": [ { "Id": 24, "UpperkWhLimit": 23, "LowerkWhLimit": 0, "UnitRate": 2.4 }, { "Id": 25, "UpperkWhLimit": 0, "LowerkWhLimit": 24, "UnitRate": 5.8 }, { "Id": 26, "UpperkWhLimit": -1, "LowerkWhLimit": 0, "UnitRate": 5.8 } ], "Id": 10, "StartDate": "2012-12-07T00:00:00", "StandingChargeValue": 0.5 }
关税类别定义
public class Tariff
{
[ScaffoldColumn(false)]
public int Id { get; set; }
[Required]
public DateTime StartDate { get; set; }
[Required]
[Range(0, 999999999)]
public double StandingChargeValue { get; set; }
public virtual Period StandingChargePeriod { get; set; }
public virtual ICollection<TariffBand> Bands { get; set; }
}