C# 反序列化json时获取null
我正在尝试将我的web响应json反序列化到一个对象,此时对象在反序列化后得到C# 反序列化json时获取null,c#,json,serialization,C#,Json,Serialization,我正在尝试将我的web响应json反序列化到一个对象,此时对象在反序列化后得到null。这是我的代码: JSON响应: { “@odata.context”:”https://outlook.office365.com/api/v1.0/$metadata#我/日历视图“, “价值”:[ { “@odata.id”:”https://outlook.office365.com/api/v1.0/Users('sathesh@newtechsolution.onmicrosoft.com“)/Ev
null
。这是我的代码:
JSON响应:
{
“@odata.context”:”https://outlook.office365.com/api/v1.0/$metadata#我/日历视图“,
“价值”:[
{
“@odata.id”:”https://outlook.office365.com/api/v1.0/Users('sathesh@newtechsolution.onmicrosoft.com“)/Events('aamkadqzmgvmnjzmlwy1yjatngfkys1hody0ltdimwzlzzjjjymiwoabgaaaaaaaaaloeh9c2qq33mvktcqzgbwd1qtj3io57qawz9mzf6weaaaaaaaaenaad1qtj3io57qawz9mzf6weaaaaaaaa0kaaa=”)”,
“@odata.etag:“W/\”9ue49ydue0glmftgreshmgaaaanag==\”,
“Id:“aamkadqzmgvmnjzmlwy1yjatngfkys1hody0ltdimwzzjzjjymiwoabgaaaaaaaaaalaoueh9c2qq33mvktcqzgbwd1qtj3io57qawz9mzf6weaaaaaaaaenaad1qtj3io57qawz9mzf6weaaaaaaaa0kaaa=”,
“变更键”:“9UE49YDUE0GLMFTGRESHMGAAAANAG==”,
“类别”:[],
“DateTimeCreated”:“2015-05-20T12:03:09.4043813Z”,
“DateTimeLastModified”:“2015-05-20T12:03:09.5606394Z”,
“主题”:“访谈样本”,
“BodyPreview”:“API讨论访谈”,
“正文”:{
“内容类型”:“HTML”,
“内容”:“\r\n\r\n\r\n\r\n\r\n\r\n\r\nAPI讨论访谈。
\r\n\r\n\r\n\r\n”
},
“重要性”:“正常”,
“HasAttachments”:假,
“开始”:“2015-05-20T16:00:00Z”,
“StartTimeZone”:“斯里兰卡标准时间”,
“结束”:“2015-05-20T17:00:00Z”,
“结束时区”:“斯里兰卡标准时间”,
“提醒”:15,
“地点”:{
“DisplayName”:“Chennai MRC NAGAR访谈样本”,
地址:{“街道”:“城市”:“州”:“国家或地区”:“邮政编码”:“},
“坐标”:{“精度”:“南”,“高度”:“南”,“高度准确度”:“南”,“纬度”:“南”,“经度”:“南”}
},
“响应状态”:{“响应”:“组织者”,“时间”:“0001-01-01T00:00:00Z”},
“ShowAs”:“忙”,
“IsAllDay”:假,
“IsCancelled”:错误,
“同构者”:没错,
“响应请求”:正确,
“类型”:“单实例”,
“SeriesMasterId”:空,
“与会者”:[
{
电子邮件地址:{“地址”:skumar@viswambara.com,“名称”:skumar@viswambara.com" },
“状态”:{“响应”:“无”,“时间”:“0001-01-01T00:00:00Z”},
“类型”:“必需”
}
],
“重复”:空,
“组织者”:{
电子邮件地址:{“地址”:sathesh@newtechsolution.onmicrosoft.com,“名称”:“sathesh kumar”}
},
“iCalUId”:“0400000008200E00074C5B7101A82E008000000019D340F0F492D00100000000001000005BA1B6261EECD34D991C5BE7D4A70547”
}
]
}
类别:
public class value
{
public string Id { get; set; }
public string ChangeKey { get; set; }
public List<object> Categories { get; set; }
public string DateTimeCreated { get; set; }
public string DateTimeLastModified { get; set; }
public string Subject { get; set; }
public string BodyPreview { get; set; }
public Body Body { get; set; }
public string Importance { get; set; }
public bool HasAttachments { get; set; }
public string Start { get; set; }
public string StartTimeZone { get; set; }
public string End { get; set; }
public string EndTimeZone { get; set; }
public int Reminder { get; set; }
public Location Location { get; set; }
public ResponseStatus ResponseStatus { get; set; }
public string ShowAs { get; set; }
public bool IsAllDay { get; set; }
public bool IsCancelled { get; set; }
public bool IsOrganizer { get; set; }
public bool ResponseRequested { get; set; }
public string Type { get; set; }
public object SeriesMasterId { get; set; }
public List<Attendee> Attendees { get; set; }
public object Recurrence { get; set; }
public Organizer Organizer { get; set; }
public string iCalUId { get; set; }
}
让我们看看您的JSON对象。实际上,您有一个匿名JSON(我们称之为
response
)对象,它有两个对象:字符串'@odata.context'和value
C#类类型对象的数组'value'
您已经描述了value
类,但是现在您正在尝试将response
对象反序列化到value
,这是不正确的。您需要描述相应的类并将其反序列化
public class Response
{
public value[] value { get; set; }
}
然后你可以这样做:
JavaScriptSerializer json = new JavaScriptSerializer();
Response response = (Response)json.Deserialize(responcedata, typeof(Response));
值
不是此响应的类型。响应类型是具有@odata.context
属性的对象,以及包含值
对象列表的值
属性。
JavaScriptSerializer json = new JavaScriptSerializer();
Response response = (Response)json.Deserialize(responcedata, typeof(Response));