[英]Deserialize json c# with CRM 365 API
所以,我做了這樣的課:
public class Values
{
public string odata_context { get; set; }
public List<ContactsDeserialize> keyValues { get; set; }
}
public class ContactsDeserialize : IDisposable
{
public string odata_etag { get; set; }
public Guid contactid { get; set; }
public string crimson_title { get; set; }
public string firstname { get; set; }
public string lastname { get; set; }
public DateTime? createdon { get; set; }
public DateTime? birthdate { get; set; }
public string emailaddress1 { get; set; }
public string mobilephone { get; set; }
public string address1_line1 { get; set; }
public string address1_line2 { get; set; }
public string address1_line3 { get; set; }
public string address1_city { get; set; }
public string address1_postalcode { get; set; }
public string address1_telephone1 { get; set; }
}
但是當我嘗試通過使用將其反序列化時
Values ContactData = JsonConvert.DeserializeObject<Values>(jsonstring);
它返回null。 找不到原因
謝謝
您的類字段與原始json字段略有不同,因此,如果要使用此字段,則需要將屬性置於字段中以提供正確的json字段,即
[JsonProperty("@odata.etag")]
public string odata_etag { get; set; }
有關更多詳細信息,請參見文檔文章
可能是您需要在構造函數中初始化keyValues列表。
public class Values
{
public Values()
{
keyValues = new List<ContactsDeserialize>();
}
public string odata_context {get; set; }
public List<ContactsDeserialize> keyValues { get; set; }
}
除非您在屬性中定義映射的對象,否則對象的名稱應與json返回的內容完全匹配。 odata_context和keyValues的命名方式與json中返回的方式略有不同。
您聲明public List<ContactsDeserialize> keyValues { get; set; }
public List<ContactsDeserialize> keyValues { get; set; }
public List<ContactsDeserialize> keyValues { get; set; }
,但json的節點是value。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.