首页 > 编程语言 >c# asp.net webapi 配置 含日期带T问题

c# asp.net webapi 配置 含日期带T问题

时间:2022-11-25 15:01:12浏览次数:35  
标签:webapi asp c# JsonDateTimeConverter object value new config public

1.WebApiConfig

  config.Formatters.JsonFormatter.SerializerSettings.Converters.Insert(
                 0, new JsonDateTimeConverter());
public static class WebApiConfig
    {
        public static void Register(HttpConfiguration config)
        {

            config.EnableCors(new EnableCorsAttribute("*", "*", "*"));

            // Web API 路由 
            config.MapHttpAttributeRoutes();

            config.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional }
            );

            config.Formatters.JsonFormatter.SerializerSettings.Converters.Insert(
                 0, new JsonDateTimeConverter());
        }
    }

2.JsonDateTimeConverter类

/// <summary>
    /// Json日期带T格式转换
    /// </summary>
    public class JsonDateTimeConverter : IsoDateTimeConverter
    {
        public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        {
            DateTime dataTime;
            if (DateTime.TryParse(reader.Value.ToString(), out dataTime))
            {
                return dataTime;
            }
            else
            {
                return existingValue;
            }
        }

        public JsonDateTimeConverter()
        {
            DateTimeFormat = "yyyy-MM-dd HH:mm:ss";
        }
    }

3.因为我是自定义统一返回格式 所以需要引用下全局的  JsonMediaTypeFormatter jtye = GlobalConfiguration.Configuration.Formatters.JsonFormatter; 

 public class ResponseJsonResult : IHttpActionResult
    {
        object _value;
        HttpRequestMessage _request;

        public ResponseJsonResult(object value, HttpRequestMessage request)
        {
            _value = value;
            _request = request;
        }

        public Task<HttpResponseMessage> ExecuteAsync(System.Threading.CancellationToken cancellationToken)
        {
            JsonMediaTypeFormatter jtye = GlobalConfiguration.Configuration.Formatters.JsonFormatter; 
            var response = new HttpResponseMessage()
            {
                Content = new ObjectContent(typeof(object), _value, jtye),
                RequestMessage = _request
            };
            return Task.FromResult(response);
        }
    }

4.使用

  var oData = new { code = 200, msg = "获取数据成功", total = totalRecord, data = carshoplist };
  return new ResponseJsonResult(oData, this.Request);

 

标签:webapi,asp,c#,JsonDateTimeConverter,object,value,new,config,public
From: https://www.cnblogs.com/linyijia/p/16925144.html

相关文章

  • 【iOS-Cocos2d游戏开发之十一】使用Box2d物理系统以及在cocos2d框架添加Box2d物理系统
    ​​ 李华明Himi ​​​原创,转载务必在明显处注明    上一节讲述了粒子的相关问题,当然啦,不示弱,今天继续将物理系统给大家进行简单的介绍和讲述;    首先先......
  • 【iOS-Cocos2d游戏开发之九】讲解CCSpriteBatchNode与TP工具的
    ​​ 李华明Himi ​​​原创,转载务必在明显处注明       前几节由于时间紧张,只是将一些遇到的问题拿出来进行分享经验,那么今天抽空写一篇常用的精灵以及精......
  • Quick BI、帆软Fine BI等BI产品,优势详细介绍
    数据价值成为诸多企业越发关注的重点价值,在此背景下助力企业挖掘数据价值的嗯一系列商业BI产品如雨后春笋般纷纷出现。市面上涌现出诸多名目繁多的商业BI产品,令人目不暇接,其......
  • pytorch之model.zero_grad() 与 optimizer.zero_grad()
    转自https://cloud.tencent.com/developer/article/17108641.引言在PyTorch中,对模型参数的梯度置0时通常使用两种方式:model.zero_grad()和optimizer.zero_grad()。二......
  • vsCode调试
    VScode我们常用语创建跨平台项目,使用cmake编译;在编译的的时候我们经常用的命令入:cmake-DCMAKE_BUILD_TYPE=Debug-DENABLE_AMC=on -Bbuild cmake --build build -j8......
  • LeetCode 605.种花问题
    LeetCode605.种花问题题目链接:​​https://leetcode-cn.com/problems/can-place-flowers/​​题目描述:假设有一个很长的花坛,一部分地块种植了花,另一部分却没有。可是,花不......
  • LeetCode 135.分发糖果
    LeetCode 135.分发糖果题目地址:​​https://leetcode-cn.com/problems/candy/​​题目描述:老师想给孩子们分发糖果,有N个孩子站成了一条直线,老师会根据每个孩子的表现,预......
  • LeetCode 435.无重叠区间
    LeetCode435.无重叠区间题目地址:​​https://leetcode-cn.com/problems/non-overlapping-intervals/​​题目描述:给定一个区间的集合,找到需要移除区间的最小数量,使剩余区......
  • LeetCode 452.用最少数量的箭引爆气球
    LeetCode452.用最少数量的箭引爆气球题目链接:​​https://leetcode-cn.com/problems/minimum-number-of-arrows-to-burst-balloons/​​题目描述:在二维空间中有许多球形......
  • 【COCOS2DX-LUA 脚本开发之一】在Cocos2dX游戏中使用Lua脚本进行游戏开发(基础篇)并介
    本站文章均为​​ 李华明Himi ​​​原创,转载务必在明显处注明对于游戏公司而言,采用游戏脚本lua、python等进行开发也很常见,但是很多童鞋对脚本并没有很熟悉的概念,本篇则......