1.3WEB API 默认以json格式返回数据,同时定义时间格式,返回格式

Posted 清风神剑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1.3WEB API 默认以json格式返回数据,同时定义时间格式,返回格式相关的知识,希望对你有一定的参考价值。

首先我们知道,web api 是可以返回任意类型的,然后在输出的过程中转为(默认的)xml。

但是xml是比较费流量的,而且大多前端都是用json对接,所以我们也只能随大流,把它输出改成json。

不废话了,直接上代码,反正就这么点。

 

  public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );
            var jsonFormatter = new JsonMediaTypeFormatter();
            var settings = jsonFormatter.SerializerSettings;
            IsoDateTimeConverter timeConverter = new IsoDateTimeConverter();
            //这里使用自定义日期格式
            timeConverter.DateTimeFormat = "yyyy‘-‘MM‘-‘dd‘ ‘HH‘:‘mm‘:‘ss";
            settings.Converters.Add(timeConverter);
            //settings.ContractResolver = new CamelCasePropertyNamesContractResolver();//默认对象首字母小写
            config.Services.Replace(typeof(IContentNegotiator), new JsonContentNegotiator(jsonFormatter));
        }
    }

    public class JsonContentNegotiator : IContentNegotiator
    {
        private readonly JsonMediaTypeFormatter _jsonFormatter;

        public JsonContentNegotiator(JsonMediaTypeFormatter formatter)
        {
            _jsonFormatter = formatter;
        }

        public ContentNegotiationResult Negotiate(Type type, HttpRequestMessage request, IEnumerable<MediaTypeFormatter> formatters)
        {
            //Content-Type: application/json
            var result = new ContentNegotiationResult(_jsonFormatter, new MediaTypeHeaderValue("application/json"));
            return result;
        }
    }

  注意了,前端对接的时候get是可以不加

Content-Type: application/json
的,但是用post方式访问的话一定要加这个,否则报错。
这里我把json的格式也放在跟WebApiConfig同一个文件下了,各位看官随意哈哈。
大家看到那个时间了吧,反正自定义,随心改。



以上是关于1.3WEB API 默认以json格式返回数据,同时定义时间格式,返回格式的主要内容,如果未能解决你的问题,请参考以下文章

以 JSON 格式返回 API [重复]

.Net Core Web Api返回的json数据,自定义日期格式

iOS Swift - Google Place API (Web) 以一种奇怪的格式返回 JSON

web api 返回数据XML JSON

api网关中的响应模板不以美化格式返回json

默认情况下如何为 Visual Studio Web API 返回 json