在标准MVC中,我使用JsonNet返回camelCase中的JSON并成功序列化具有相关实体的实体(否则会使用默认序列化程序报告“周期”错误。)
我想对Orchard模块中的WebAPI控制器执行相同的操作。默认情况下,它会返回PascalCase JSON,并在给定实体列表时报告“cyles”异常。
任何人都可以解释如何最好地配置Orchard模块中的JSON输出,以模仿JsonNet会产生什么?
答案 0 :(得分:0)
我找到了一种解决方法,即在ActionFilter中将JSON格式化程序设置设置为camelCase:
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 - 有人能告诉我这种方式吗?
非常感谢。