在标准的MVC我用JsonNet返回JSON是在驼峰并成功地序列化具有相关实体(否则报告一个“循环”错误”使用默认的序列)的实体。
我想一个果园模块中的WebAPI控制器这样做。 默认情况下,它返回PascalCase JSON和有关实体的名单时,报告了“个循环”异常。
谁能解释如何最好地从乌节模块内配置JSON输出,以模仿什么JsonNet会产生?
在标准的MVC我用JsonNet返回JSON是在驼峰并成功地序列化具有相关实体(否则报告一个“循环”错误”使用默认的序列)的实体。
我想一个果园模块中的WebAPI控制器这样做。 默认情况下,它返回PascalCase JSON和有关实体的名单时,报告了“个循环”异常。
谁能解释如何最好地从乌节模块内配置JSON输出,以模仿什么JsonNet会产生?
我已经找到了解决办法,这是设置在一个ActionFilter的JSON格式化设置驼峰:
public class CamelCaseJsonAttribute : ActionFilterAttribute {
public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext)
{
var jsonFormatter = actionContext.ControllerContext.Configuration.Formatters.OfType<JsonMediaTypeFormatter>().First();
jsonFormatter.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
}
}
但这似乎效率不高,因为它得到对每个请求设置,而不是全局的,一次。
我猜有一个扩展点某处模块设置HttpConfiguration中 - 谁能告诉我一个方法或其他?
非常感谢。