ABP .net core2.0 Json 日期格式 和 驼峰设置

问题描述:

最近采用ABP框架 开发小程序,发现自动生成的动态Web API 接口返回的Json数据格式有两个问题:

1、日期格式问题如:"creationTime": "2018-11-28T19:18:00",  //中间多了一个T

2、对象属性问题如: {
                "resourceType_Code": "Platform_MsgRemark",
                "resourceType_Name": "留言备注",                
                "creationTime": "2018-11-28T19:18:00",
            }//首字母被自动的小写了  

翻遍了整个百度  找到的清一色无效解决方案 ,差不多都是配置如下:services.AddMvc().AddJsonOptions(options => { options.SerializerSettings.ContractResolver = new DefaultContractResolver(); options.SerializerSettings.DateFormatString = "yyyy-MM-dd"; });

解决方案:

1、创建自定义配置类:

public class MyCustomContractResolver : AbpContractResolver
    {
        protected override void ModifyProperty(MemberInfo member, JsonProperty property)
        {
            if (property.PropertyType != typeof(DateTime) && property.PropertyType != typeof(DateTime?))
            { return; }

            property.Converter = new AbpDateTimeConverter()
            { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" };
        }
    }

2、在Startup.cs->public IServiceProvider ConfigureServices(IServiceCollection services){}中注入自定义类:

 services.PostConfigure<MvcJsonOptions>(options =>
            {
                options.SerializerSettings.ContractResolver = new MyCustomContractResolver();
            });

注:被这个问题困惑了好几天,突然灵机一动想到遇坑的人肯定不止我一个,于是跑Github ABP开源项目 Issues中找到了官方给的暂时的比较丑陋的解决方案, but it works !

 

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值