将JSON反序列化回原始模型时出现问题

本文关键字:问题 模型 原始 JSON 反序列化 | 更新日期: 2023-09-27 18:25:19

为什么这个JSON不反序列化回它序列化的模型?它将反序列化为List of Bar,但不会反序列化为实现List of Bar的对象。

public class Bars : List<Bar>
{
}
public class Bar
{
    public decimal Open { get; set; }
    public decimal High { get; set; }
    public decimal Low { get; set; }
    public decimal Close { get; set; }
}
private void test()
{
    Bars bars = new Bars()
    {
        new Bar(){Open = 1.5269M, High = 1.6001M, Low = 1.4012M, Close = 1.5277M},
        new Bar(){Open = 1.5277M, High = 1.6003M, Low = 1.5276M, Close = 1.7008M},
        new Bar(){Open = 1.7008M, High = 1.9003M, Low = 1.4276M, Close = 1.60098M}
    };
    JavaScriptSerializer jss = new JavaScriptSerializer();
    string json = jss.Serialize(bars);
    //works
    var dsBars1 = jss.Deserialize<List<Bar>>(json);
    //fails
    var dsBars2 = jss.Deserialize<Bars>(json);
}

将JSON反序列化回原始模型时出现问题

您可以使用Json。网以下代码有效。。。

var json = JsonConvert.SerializeObject(bars);
var dsBars1 = JsonConvert.DeserializeObject<List<Bar>>(json);
var dsBars2 = JsonConvert.DeserializeObject<Bars>(json);