无法反序列化索引名称值对子节点C#

时间:2017-09-21 01:48:49

标签: c# json serialization

当我尝试反序列化返回JSON对象的webAPI GET调用时,我遇到了问题。作为一个特定属性的问题在反序列化后始终为null。

JSON对象如下所示:

    {  
   "status":"OK",
   "masterlist":{  
      "session":{  
         "session_id":intValue,
         "session_name":"stringValue"
      },
      "0":{  
         "bill_id":intValue,
         "number":"stringValue",
         "change_hash":"stringValue",
         "url":"stringValue",
         "status_date":"dateValue",
         "status":"stringValue",
         "last_action_date":"dateValue",
         "last_action":"stringValue",
         "title":"stringValue",
         "description":"stringValue"
      },
      "1":{  
         "bill_id":intValue,
         "number":"stringValue",
         "change_hash":"stringValue",
         "url":"stringValue",
         "status_date":"dateValue",
         "status":"stringValue",
         "last_action_date":"dateValue",
         "last_action":"stringValue",
         "title":"stringValue",
         "description":"stringValue"
      },
      "2":{  
         "bill_id":intValue,
         "number":"stringValue",
         "change_hash":"stringValue",
         "url":"stringValue",
         "status_date":"dateValue",
         "status":"stringValue",
         "last_action_date":"dateValue",
         "last_action":"stringValue",
         "title":"stringValue",
         "description":"stringValue"
      }
   }
}

正如你所看到的,masterlist的第二个属性不是一个数组,这会让生活变得简单......但它看起来更像是一组名字/值对。我已经审核了This post以及列出的相关联的within,但它们都与属于我的根级别的名称/值对有关。

我用来反序列化的方法是:

        BillMaster billMasterList = new BillMaster();

        using (HttpClient client = new HttpClient())
        {
            string json = Get("&op=getMasterList&state=TN");

            billMasterList = JsonConvert.DeserializeObject<BillMaster>(json);
        }

反序列化程序绑定到的模型类:

public class BillMaster
{
    public string Status { get; set; }
    public BillMasterList masterlist { get; set; }
}

public class BillMasterList
{
    public BillMasterList_Session session { get; set; }
    public Dictionary<int, BillMasterList_Array> BillMasterList_Array { get; set; }
}

public class BillMasterList_Array
{
    public int bill_id { get; set; }
    public string number { get; set; }
    public string change_hash { get; set; }
    public string url { get; set; }
    public string status_date { get; set; }
    public string status { get; set; }
    public string last_action_date { get; set; }
    public string last_action { get; set; }
    public string title { get; set; }
    public string description { get; set; }
}

当我运行代码时,我不会抛出任何错误,除了BillMasterList_Array之外,我的对象中有值,它始终为null。我显然没有做正确的事情,但这是我的意思。

0 个答案:

没有答案