从返回的WebAPI型JsonNet JSON在果园(Return JsonNet type JSO

2019-11-02 06:35发布

在标准的MVC我用JsonNet返回JSON是在驼峰并成功地序列化具有相关实体(否则报告一个“循环”错误”使用默认的序列)的实体。

我想一个果园模块中的WebAPI控制器这样做。 默认情况下,它返回PascalCase JSON和有关实体的名单时,报告了“个循环”异常。

谁能解释如何最好地从乌节模块内配置JSON输出,以模仿什么JsonNet会产生?

Answer 1:

我已经找到了解决办法,这是设置在一个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中 - 谁能告诉我一个方法或其他?

非常感谢。



文章来源: Return JsonNet type JSON from WebAPI in Orchard