用泛型列表反序列化对象



我正试图反序列化一个对象,该类型已填充,但我为List<Sport>获得null。什么好主意吗?

我的类:

class Sports
{
    public MsgTypes type { get; set; }
    public List<Sport> Sport { get; set; }
}
class Sport
{
    public int Id { get; set; }
    public int Import_id { get; set; }
    public string Name { get; set; }
    public int Active { get; set; }
    public int Order { get; set; }
    public int Min_bet { get; set; }
    public int Max_bet { get; set; }
    public int Updated { get; set; }
    public string Feed_type { get; set; }
    public string Locale { get; set; }
}
反序列化命令:

Sports _sports = (Sports) JsonConvert.DeserializeObject<Sports>(jsonObj);
这是我的JSON对象:
"{"code":0,"type":4,"Sports":[{"Sport":{"id":"1","import_id":"1","name":"Soccer","active":true,"order":"1","min_bet":"0","max_bet":"0","updated":"1403194889","feed_type":"Betradar","locale":"en_us"}},{"Sport":{"id":"2","import_id":"5","name":"Tennis","active":true,"order":"3","min_bet":"0","max_bet":"0","updated":"1403194771","feed_type":"Betradar","locale":"en_us"}},{"Sport":{"id":"3","import_id":"6","name":"Handball","active":true,"order":"6","min_bet":"0","max_bet":"0","updated":"1403152901","feed_type":"Betradar","locale":"en_us"}},{"Sport":{"id":"4","import_id":"4","name":"Ice Hockey","active":true,"order":"4","min_bet":"0","max_bet":"0","updated":"1403080245","feed_type":"Betradar","locale":"en_us"}},{"Sport":{"id":"7","import_id":"2","name":"Basketball","active":true,"order":"2","min_bet":"0","max_bet":"0","updated":"1403194830","feed_type":"Betradar","locale":"en_us"}},{"Sport":{"id":"8","import_id":"23","name":"Volleyball","active":true,"order":"5","min_bet":"0","max_bet":"0","updated":"1403194591","feed_type":"Betradar","locale":"en_us"}},{"Sport":{"id":"9","import_id":"12","name":"Rugby","active":true,"order":"7","min_bet":"0","max_bet":"0","updated":"1403194710","feed_type":"Betradar","locale":"en_us"}},{"Sport":{"id":"12","import_id":"11","name":"Motorsport","active":true,"order":"12","min_bet":"0","max_bet":"0","updated":"1403065699","feed_type":"Betradar","locale":"en_us"}},{"Sport":{"id":"13","import_id":"3","name":"Baseball","active":true,"order":"13","min_bet":"0","max_bet":"0","updated":"1403194834","feed_type":"Betradar","locale":"en_us"}},{"Sport":{"id":"14","import_id":"16","name":"American Football","active":true,"order":"14","min_bet":"0","max_bet":"0","updated":"1403143326","feed_type":"Betradar","locale":"en_us"}},{"Sport":{"id":"16","import_id":"34","name":"Beach Volley","active":true,"order":"16","min_bet":"0","max_bet":"0","updated":"1403194417","feed_type":"Betradar","locale":"en_us"}}]}"

您需要多一层嵌套和不同的类名。您应该能够反序列化到这样的结构:

class SportsParent
{
    //Code for MsgTypes was not provided so it is commented out
    public List<SportGroup> Sports { get; set; }
}
class SportGroup
{
    public SportItem Sport { get; set; }
}
class SportItem
{
    public int Id { get; set; }
    public int Import_id { get; set; }
    public string Name { get; set; }
    public bool Active { get; set; }    //need to be converted to bool instead of int
    public int Order { get; set; }
    public int Min_bet { get; set; }
    public int Max_bet { get; set; }
    public int Updated { get; set; }
    public string Feed_type { get; set; }
    public string Locale { get; set; }
}

您可以使用以下代码进行反序列化:

SportsParent _sports = JsonConvert.DeserializeObject<SportsParent>(jsonObj);

相关内容

  • 没有找到相关文章

最新更新