簡體   English   中英

反序列化json時獲取null

[英]getting null while deserialization json

我正在嘗試將我的網絡響應json反序列化為一個對象,當時反序列化之后對象變為null 這是我的代碼:

JSON響應:

{
  "@odata.context": "https://outlook.office365.com/api/v1.0/$metadata#Me/CalendarView",
  "value": [
    {
      "@odata.id": "https://outlook.office365.com/api/v1.0/Users('sathesh@newtechsolution.onmicrosoft.com')/Events('AAMkADQzMGVmNjZmLWY1YjAtNGFkYS1hODY0LTdiMWZlZjZjYmIwOABGAAAAAAAaluoeH9c2Qq33MvKTCqzgBwD1QTj3IO57QaWZ9MZF6weaAAAAAAENAAD1QTj3IO57QaWZ9MZF6weaAAAAAA0kAAA=')",
      "@odata.etag": "W/\"9UE49yDue0GlmfTGResHmgAAAAANag==\"",
      "Id": "AAMkADQzMGVmNjZmLWY1YjAtNGFkYS1hODY0LTdiMWZlZjZjYmIwOABGAAAAAAAaluoeH9c2Qq33MvKTCqzgBwD1QTj3IO57QaWZ9MZF6weaAAAAAAENAAD1QTj3IO57QaWZ9MZF6weaAAAAAA0kAAA=",
      "ChangeKey": "9UE49yDue0GlmfTGResHmgAAAAANag==",
      "Categories": [],
      "DateTimeCreated": "2015-05-20T12:03:09.4043813Z",
      "DateTimeLastModified": "2015-05-20T12:03:09.5606394Z",
      "Subject": "Interview Sample",
      "BodyPreview": "Interview For API discussion.",
      "Body": {
        "ContentType": "HTML",
        "Content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n<style type=\"text/css\" style=\"display:none;\"><!-- P {margin-top:0;margin-bottom:0;} --></style>\r\n</head>\r\n<body dir=\"ltr\">\r\n<div id=\"divtagdefaultwrapper\" style=\"font-size:12pt;color:#000000;background-color:#FFFFFF;font-family:Calibri,Arial,Helvetica,sans-serif;\">\r\n<p>Interview For API discussion.<br>\r\n</p>\r\n</div>\r\n</body>\r\n</html>\r\n"
      },
      "Importance": "Normal",
      "HasAttachments": false,
      "Start": "2015-05-20T16:00:00Z",
      "StartTimeZone": "Sri Lanka Standard Time",
      "End": "2015-05-20T17:00:00Z",
      "EndTimeZone": "Sri Lanka Standard Time",
      "Reminder": 15,
      "Location": {
        "DisplayName": "Interview Sample  Chennai MRC NAGAR",
        "Address": { "Street": "", "City": "", "State": "", "CountryOrRegion": "", "PostalCode": "" },
        "Coordinates": { "Accuracy": "NaN", "Altitude": "NaN", "AltitudeAccuracy": "NaN", "Latitude": "NaN", "Longitude": "NaN" }
      },
      "ResponseStatus": { "Response": "Organizer", "Time": "0001-01-01T00:00:00Z" },
      "ShowAs": "Busy",
      "IsAllDay": false,
      "IsCancelled": false,
      "IsOrganizer": true,
      "ResponseRequested": true,
      "Type": "SingleInstance",
      "SeriesMasterId": null,
      "Attendees": [
        {
          "EmailAddress": { "Address": "skumar@viswambara.com", "Name": "skumar@viswambara.com" },
          "Status": { "Response": "None", "Time": "0001-01-01T00:00:00Z" },
          "Type": "Required"
        }
      ],
      "Recurrence": null,
      "Organizer": {
        "EmailAddress": { "Address": "sathesh@newtechsolution.onmicrosoft.com", "Name": "sathesh kumar" }
      },
      "iCalUId": "040000008200E00074C5B7101A82E0080000000019D340F0F492D0010000000000000000100000005BA1B6261EECD34D991C5BE7D4A70547"
    }
  ]
}

類:

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; }
}

反序列化:

JavaScriptSerializer json = new JavaScriptSerializer();
value condiiton = (value)json.Deserialize(responcedata, typeof(value));

讓我們看一下您的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));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM