[英]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.