我正试图反序列化一个对象,该类型已填充,但我为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);