zoukankan      html  css  js  c++  java
  • 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同一个文件下了,各位看官随意哈哈。
    大家看到那个时间了吧,反正自定义,随心改。
  • 相关阅读:
    Spring__SpringMVC__Mybatis整合
    Mybatis__延迟加载
    mybatis__关联关系__1对1,1对多
    动态SQL基本语句用法
    log4j的使用 && slf4j简单介绍
    Mybatis接口与映射文件
    ORM简介 && MyBatis和Hibernate的不同 && 动态代理简单实现Mybatis基本使用
    20169207《linux内核原理与分析》第二周作业
    关于Linux学习中的问题和体会
    [algothrim]URL相似度计算的思考
  • 原文地址:https://www.cnblogs.com/cvol/p/6836410.html
Copyright © 2011-2022 走看看