无法将列表<object>转换为列表<custom object =“”>

时间:2017-10-19 07:02:27

标签: c# json list tolist

我下面有3节课。

[Serializable]
public class Classa {
  public list<Object> list {get; set;}
}

[Serializable]
public class Classb {
  public string name {get; set;}
  public string nickname {get; set;}
}


[Serializable]
public class Classc {
  public string type {get; set;}
  public string price {get; set;}
}

在我的计划中,当我传递与List<Object>List<Classb>匹配的JSON结构时,我想将List<Classc>投射到ClassbClassc ...有没有办法施展它?

[HttpPost]
[ActionName("Import")]
[EnableCors(origins: "*", headers: "*", methods: "*")]
public Object Import([FromBody]Classa ImportData)
{

  List<Classb> blist = a.list.Cast<Classb>().toList();

}

它抛出:

  

无法转换类型&#39; Newtonsoft.Json.Linq.JObject&#39;输入   &#39; CLASSB&#39;

我试过了:

List<Classb> blist = aOfType<Classb>().ToList();

成功但没有价值......

1 个答案:

答案 0 :(得分:0)

在Classa中,您有一个包含对象的列表,但是您需要一个包含Classb的列表。所以改变这个

string(5) "TX628"

[Serializable]
public class Classa{
list<Object> list{get;set;}
}

这个

[Serializable]
public class Classa{
list<Classb> list{get;set;}
}

可以

 List<Classb> blist = a.list.Cast<Classb>().toList();

编辑: 你有一个错字

List<Classb> blist = a.list;