Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 反序列化json时获取null_C#_Json_Serialization - Fatal编程技术网

C# 反序列化json时获取null

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

我正在尝试将我的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“)/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));