我有以下从REST服务来用下列JSON,我试图用这个代码把它反序列化到C#对象:C#中将此Json转换为什么正确的类结构?
var _deserializer = new JsonDeserializer();
var results = _deserializer.Deserialize<Report>(restResponse);
的反序列化方法保持返回NULL,它告诉我,我的C#对象不结构正确。
以下是Json和我在C#定义中的最新尝试。
{
"Report": [
{
"ID": "0000014",
"Age": "45",
"Details": [
{
"Status": "Approved",
"Name": "Joe"
},
{
"Status": "Approved",
"Name": "Bill"
},
{
"Status": "Submitted",
"Name": "Scott"
}
]
},
{
"ID": "10190476",
"Age": "40",
"Details": [
{
"Status": "Approved",
"Name": "Scott"
}
]
},
{
"ID": "10217480",
"Age": "40",
"Details": [
{
"Status": "Approved",
"Name": "Scott"
}
]
}
]
}
这里是我的C#对象:
public class Report
{
public List<WorkItem> Item= new List<WorkItem>();
}
public class WorkItem
{
public string ID { get; set; }
public int Age { get; set; }
public List<Details> Details { get; set; }
}
public class Details
{
public string Status { get; set; }
public string Name { get; set; }
}
能有人建议有什么不对我的C#对象的定义,使这个JSON反序列化正确?
以一致格式和缩进的JSON查看格式(因此回答问题)要容易得多。我通过http://jsonlint.com为你运行它。 –
也许它是Report类的Item成员。如果你把它写成:'public List Item {get;组; },就像@tam回答 –