我有一個JSON字符串,類似於以下:的Json反序列化空引用
{
EventID: 4,
CalendarEntry :
{
CalendarID: 4,
AreaID: 41,
Name: "My Event Entry #4"
}
}
我反序列化頂層結構成在代碼中的事件實體,其正確添加(4)〜編號:
public class Event
{
[DataMember(Name = "EventID")]
public int Id { get; set; }
}
但是,當我將Calendar作爲屬性添加到Event時,兩個Id始終返回null?
public class EventCalendar
{
[DataMember(Name = "CalendarID")]
public int Id { get; set; }
[DataMember(Name = "AreaID")]
public int AreaId { get; set; }
[DataMember(Name = "Name")]
public string Name { get; set; }
}
public class Event
{
[DataMember(Name = "EventID")]
public int Id { get; set; }
[DataMember(Name = "CalendarEntry")]
public EventCalendar Calendar { get; set; }
}
什麼錯誤我是,如果我從任一個ID或areaID表示刪除[數據成員]屬性,正好給它的名字,因爲它來自我的JSON字符串,它帶回正確的結果。但是,我不想在我的實體中使用相同的名稱,並且期望[DataMember]能夠正確恢復數據?
我在.Net 4.5中使用JsonSerializer。
我也試過這與Newtonsoft.Json和它做同樣的事情?
我是從服務,我需要工作,我不擁有控制權(來自第三方)假設它的數據。 JSON解析正確,開發者確實在所有ID上返回int。只是很奇怪,json.net和序列化都不會推斷正確的對象屬性? – JadedEric
json字符串(來自第三方服務)的外觀如何? – nekman