簡體   English   中英

使用 JavaScriptSerializer 獲取 NULL 反序列化 JSON 字符串

[英]Getting NULL Deserializing JSON string using JavaScriptSerializer

Hi I having following JSON but while Using Deserialize method getting NULL in nested Member here is the sample JSON and corresponding Class object:

{
   "status": "success",
    "Info": [
      {
       "Name": "1099589",
       "version": "Current Version",
       "MoreDetails": [
        {

          "Name": "1099589",
          "state": "IN"

        },
        {
          "Name": "1099768",
          "state": "OUT"

        }

      ]
    },
    {
      "Name": "1099768",
      "version": "2019"
    }
  ],
  "errorCode": "",
  "message": ""
}

Class:

  public class MoreDetail
    {
        public string Name { get; set; }
        public string state { get; set; }
    }

    public class Info
    {
        public string Name { get; set; }
        public string version { get; set; }
        public IList<MoreDetail> MoreDetails { get; set; }
    }

    public class Example
    {
        public string status { get; set; }
        public IList<Info> Info { get; set; }
        public string errorCode { get; set; }
        public string message { get; set; }
    }

當我使用

JavaScriptSerializer js = new JavaScriptSerializer();
Example ex = new OfferingPayload();
ex = js.Deserialize<Example> (jsonstring);

我可以看到示例 object 將 Info 數據作為列表,但 Info Class 的 MoreDetails 成員即將推出 NULL。

有人可以建議我在這里缺少什么嗎?

那是因為您的第二個“信息”object 沒有“更多詳細信息”屬性。

{
  "Name": "1099768",
  "version": "2019"
}

要使其正常工作,您可以向 json 添加一個空的“MoreDetails”屬性。

{
  "Name": "1099768",
  "version": "2019",
  "MoreDetails": []
}

或者你可以配置你的序列化器來處理這個屬性作為可選的。 即使 json 中缺少它,它也會正常工作。

暫無
暫無

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

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