比方說,我有這些entitites這些關係:這只是一個虛構的例子,而不是我目前的實體。設置JSON序列中的.NET Web API的最大深度
- 場
- 用戶
- NewsPosts
課程有很多用戶, 用戶有很多課程
課程有很多NewsPosts, NewsPosts有許多課程
用戶有很多NewsPosts, NewsPosts有很多用戶
我首先使用實體框架代碼和.NET Web API,它以JSON的形式發回實體。當我嘗試獲取課程時,它會返回JSON結果與實體的關係,這很好,但我希望設置它序列化的級別的限制,以便它不會序列化第一個以外的所有關係或二級。
GET課程/將被序列化到:
{
"Users":[{
"id":1,
"newsPosts": [{
"id":1,
"message":"foo"
}]
}],
"newsPosts":[{
"id":2,
"message":"bar"
}]
}
什麼,我想是序列只有1或可能2級,這樣的結果將是:
{
"Users":[{
"id":1,
"newsPosts": []
}],
"newsPosts":[{
"id":2,
"message":"bar"
}]
}
我已經加入a:
json.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
這是刪除參考操作。
所以簡而言之:有沒有什麼方法可以設置最大數量的節點來序列化?
[如何序列化或反序列化JSON對象到C#中的特定深度?](http:// stackoverflow。com/questions/10453127 /如何序列化或反序列化json-object-to-a-depth-in-c) – 2013-05-02 13:40:16
自定義JsonWriter和自定義ContractResolver似乎是要走的路。感謝您注意到重複。 – 2013-05-06 16:19:56