我试图按顺序将Json对象反序列化为动态列表,所以我有:
JSON:
string json = "{'elements':[
{'EntityA':[
{'name ':'Jhon'}
],
'EntityB':[
{'title' : 'car'}
],
'EntityB':[
{'title':'aaa'}
],
'EntityA':[
{'name' : 'Alice'}
]]}";
.NET Classes基类:
public interface EntitysInterface{}
public class EntityA: EntitysInterface
{
public string name { get; set; }
}
public class EntityB: EntitysInterface
{
public string title { get; set; }
}
public class Entitys
{
public List<EntitysInterface> elements { get; set; } //EntityA, EntityB,...
public Entitys()
{
}
}
我的DeserializeObject Dificult:
Entitys listFinaly = JsonConvert.DeserializeObject<Entitys>(json);
异常“Type是接口或抽象类,无法实例化。:(”
答案 0 :(得分:2)
JSON.NET反序列化器告诉您它无法找出您想要选择的EntitysInterface
对象。它要求你给它一个提示。
ContractResolver
有助于提供该提示。
This post answers a similar question.
编辑:
JSON.Net文档中有good example。