Проблема десериализации JSON обратно к исходной модели

1

Почему этот JSON не десериализуется обратно к модели, из которой она была сериализована? Он будет десериализоваться в списке баров, но не для объекта, который реализует список баров.

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);

}
Теги:

1 ответ

1

Вы можете использовать Json.Net. Ниже кода работает...

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню