码迷,mamicode.com
首页 > Windows程序 > 详细

web Api自定义部分Action的JSON格式输出

时间:2014-07-15 09:39:09      阅读:315      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   使用   数据   

昨天项目中要部分Api的JSON格式需要特殊处理。最开始直接重写controller的JSON方法。经测试,当action直接返回数据的时候,不会调用Json方法。

然后找了各种方法,都不行。在群里问了。直到看到群友发的一个直接移除所有API的JSON格式方法的时候。图片如下:

bubuko.com,布布扣

然后就想到了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了。

web Api自定义部分Action的JSON格式输出,布布扣,bubuko.com

web Api自定义部分Action的JSON格式输出

标签:style   blog   http   color   使用   数据   

原文地址:http://www.cnblogs.com/chongsha/p/3843965.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!