0
我想知道如何省略序列化的特定屬性。 問題是我不能使用[JsonIgnore]
或[IgnoreDataMember]
屬性,因爲我需要此屬性顯示在其他地方。如何在沒有[JsonIgnore]或[IgnoreDataMember]屬性的情況下省略Web-Api導航屬性中的數據
這裏是我的服務模式
public class Event
{
public long EventId { get; set; }
public string EventName { get; set; }
public DateTime? EventDate { get; set; }
public string EventLocalization { get; set; }
public string EventImage { get; set; }
public string EventUrl { get; set; }
public string EventDescription { get; set; }
public City City { get; set; }
}
public class City
{
public int CityId { get; set; }
public string CityName { get; set; }
public State State { get; set; }
public IEnumerable<Event> Events { get; set; }
}
當我問JSON從事件我回來是這樣的:
[
{
"EventId": 1,
"EventName": "Alalala",
"EventDate": "2016-01-01T00:00:00",
"EventLocalization": "Musialka",
"EventImage": null,
"EventUrl": null,
"EventDescription": null,
"City": {
"CityId": 164,
"CityName": "Opole",
"State": {
"StateId": 8,
"StateName": "opolskie",
"Cities": null
},
"Events": null
},
"Category": {
"CategoryId": 1,
"CategoryName": "Teatr i Opera"
}
}
]
這裏是循環。城市模型由事件導航屬性組成,但我不想再次顯示事件,當我詢問事件的JSON時。我只想顯示CityId
,CityName
和State
屬性。我無法在城市模型中裝飾IEnumerable<Event>
屬性,因爲我需要此屬性以在請求城市JSON時返回事件列表。
我想通了,我可以創造另一種模式只需用3個屬性:CityId
,CityName
和State
,並將其包含在事件模型,而不是城酒店物業,但與50款這是一個相當龐大的工作。
我可以用其他方式解決這個問題嗎?
你看過http://www.newtonsoft.com/json/help/html/ContractResolver.htm – Louis