比方说,我有这些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