小编Ani*_*B.M的帖子

实现 IConvertible 的自定义数据类型的反序列化问题

我有一个类ChargesDetail,正在尝试反序列化 json,如下所示。这里我使用的数据类型是Amount.

public class ChargesDetail
{
   public double DiscountRate { get; set; }
   public Amount DiscountAmount { get; set; }
}

public class Amount:IConvertible 
{
    private double _val = 0;
    private int _decimal = 5;

    public Amount()
    {
    }

    public Amount(double amount): this()            
    {
       // this.Value = amount;
        _val = Math.Round(amount, _decimal);
    }

    #region IConvertible Members

    // Implementation snipped

    #endregion
}
Run Code Online (Sandbox Code Playgroud)

我的 JSON 看起来像:

{ "DiscountRate":0.0, "DiscountAmount":0.0 }
Run Code Online (Sandbox Code Playgroud)

我正在尝试像这样反序列化:

T result = JsonConvert.DeserializeObject<ChargesDetail>(json);
Run Code Online (Sandbox Code Playgroud)

它给了我一个例外,例如:

从“System.Double”到“Amount”的无效转换。

在 …

c# json json.net

3
推荐指数
1
解决办法
778
查看次数

标签 统计

c# ×1

json ×1

json.net ×1