ASP.Net Core基于ABP架构配置To Json序列化

 更新时间:2022年06月15日 09:40:22   作者:springsnow  
这篇文章介绍了ASP.Net Core基于ABP架构配置To Json序列化的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

一、 前言

我们采用ABP架构用MVC Controller或Web API返回给前端结果ToJson序列化后得到的属性命名都是采用js的驼峰格式,即首字母小写,后面单词首字母大写的格式(如:后台属性名为OrderName,返回的前端js为orderName)。但在实际项目开发中由于某种原因(比如给老系统提供接口或现有系统集成等)需要采用给后台属性名一致或自己特定的格式,下面就介绍一下基于ABP架构ToJson如何修改默认配置和自定义配置。

二、 修改ToJson序列化默认配置

在Startup文件进行默认配置修改,代码如下:

public class Startup
{
        private readonly IConfigurationRoot _appConfiguration;

        public Startup(IHostingEnvironment env)
        {
            _appConfiguration = env.GetAppConfiguration();
        }

        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            // MVC
            services.AddMvc()
        .AddJsonOptions(options =>
            {
                //配置tojson格式配置 DefaultContractResolver 为和后台属性名保持一致(即:后台属性名为OrderName,前端js获得属性名也为OrderName)
                options.SerializerSettings.ContractResolver = new DefaultContractResolver();
                //修改为CamelCasePropertyNamesContractResolver,为js的驼峰格式,即abp默认格式(即:后台属性名为OrderName,前端js获得属性名为orderName)
                //options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
            });
      }
}

三、ToJson序列化自定义配置

如果需要自定义ToJson序列化格式,需要先写一个子类继承DefaultContractResolver,重写ResolvePropertyName方法,代码如下:

public class MyPropertyNamesContractResolver : DefaultContractResolver
{
        protected override string ResolvePropertyName(string propertyName)
        {
            //属性名全部返回小写
            return propertyName .ToLower();
        }
}

再参考第二点在Startup文件将配置替换为MyPropertyNamesContractResolver

services.AddMvc()
.AddJsonOptions(options =>
{
     //配置tojson格式替换为自定义格式 MyPropertyNamesContractResolver (即:后台属性名为OrderName,前端js获得属性名为ordername)
     options.SerializerSettings.ContractResolver = new MyPropertyNamesContractResolver();
     options.SerializerSettings.DateFormatString = "yyyy'-'MM'-'dd' 'HH':'mm':'ss"; //返回给前台的JSON数据中时间格式去掉T
});

到此这篇关于ASP.Net Core基于ABP架构配置To Json序列化的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • asp.net core 获取 MacAddress 地址方法示例

    asp.net core 获取 MacAddress 地址方法示例

    这篇文章主要介绍了asp.net core获取MacAddress地址方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • asp.net forms身份验证,避免重复造轮子

    asp.net forms身份验证,避免重复造轮子

    最近开始一个小 asp.net 项目,整个项目需要登录才能操作。以前大家都采用 asp 的方式 session + cookie 来实现身份验证,我一直对 asp.net 自带的 forms 验证早就耳闻,苦于没实践,今天刚好逮到机会实际应用一下。
    2009-11-11
  • Entity Framework使用Code First模式管理事务

    Entity Framework使用Code First模式管理事务

    本文详细讲解了Entity Framework使用Code First模式管理事务的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-03-03
  • 一个ASP.NET的MYSQL的数据库操作类自己封装的

    一个ASP.NET的MYSQL的数据库操作类自己封装的

    这篇文章主要介绍了一个ASP.NET的MYSQL的数据库操作类自己封装的,在数据库操作类中的连接字符串中记得加上charset=utf8 需要的朋友可以参考下
    2014-08-08
  • ASP.NET WebService中使用ASP.NET_SessionId的问题说明

    ASP.NET WebService中使用ASP.NET_SessionId的问题说明

    proxy.CookieContainer存储了客户端的 ASP.NET_SessionId。这样以后每次通过webservice 方法调用时,都会将ASP.NET_SessionId传递到服务器端。
    2011-09-09
  • asp.net实现访问局域网共享目录下文件的解决方法

    asp.net实现访问局域网共享目录下文件的解决方法

    这篇文章主要介绍了asp.net实现访问局域网共享目录下文件的解决方法,需要的朋友可以参考下
    2014-07-07
  • WPF自定义Expander控件样式实现酷炫Style

    WPF自定义Expander控件样式实现酷炫Style

    这篇文章介绍了WPF自定义Expander控件样式实现酷炫Style的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • ASP.NET 站点地图(sitemap)简明教程

    ASP.NET 站点地图(sitemap)简明教程

    毕业设计折腾了近一个月的时间,也将近完工阶段。下个礼拜六是论文答辩时间,所以今天晚上就抽空想去弄一下站点地图。不怕大侠们笑话,我在以前还真没弄过这些。以前开发过几个项目都是系统类,也就没怎么涉及了
    2012-04-04
  • C# SetCursorPos简介及使用说明

    C# SetCursorPos简介及使用说明

    该函数把光标移到屏幕的指定位置,如果新位置不在由ClipCursor函数设置的屏幕矩形区域之内,则系统自动调整坐标,使得光标在矩形之内
    2012-12-12
  • listview里的button事件添加方法

    listview里的button事件添加方法

    搞了很长时间了,如何在listview button上添加事件监听,一直是网友们比较在意的,本文将为您解答此疑惑,需要了解的朋友可以参考下
    2012-12-12

最新评论