首页 > 代码库 > web Api自定义部分Action的JSON格式输出
web Api自定义部分Action的JSON格式输出
昨天项目中要部分Api的JSON格式需要特殊处理。最开始直接重写controller的JSON方法。经测试,当action直接返回数据的时候,不会调用Json方法。
然后找了各种方法,都不行。在群里问了。直到看到群友发的一个直接移除所有API的JSON格式方法的时候。图片如下:
然后就想到了Api的ActionFilterAttribute。就解决了自己的需求。
上代码。懒得写说明。
1 public class AppFilterAttribte : ActionFilterAttribute 2 { 3 public override void OnActionExecuting(System.Web.Http.Controllers.HttpActionContext actionContext) 4 { 5 foreach (var formatter in actionContext.ControllerContext.Configuration.Formatters) 6 { 7 JsonMediaTypeFormatter jsonFormatter = formatter as JsonMediaTypeFormatter; 8 if (jsonFormatter != null) 9 {10 jsonFormatter.SerializerSettings.ContractResolver = new AppContractResolver(); //自己需要的处理方式11 break;12 }13 }14 base.OnActionExecuting(actionContext);15 } 16 }
由于我使用的MVC版本Configuration没办法直接得到JsonFormatter,所以只好使用循环来取了!
在Action上配置如上的Filter就OK了。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。