zoukankan      html  css  js  c++  java
  • ABP .Net Core 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(); });
  • 相关阅读:
    微信小程序 单选按钮 最佳
    微信小程序 单选按钮的实现
    微信小程序 单选框实现
    Java Code To Create Pyramid and Pattern
    Java language
    npm Err! Unexpected end of JSON input while parsing near
    Node.js Express FrameWork Tutorial
    Higher-Order Function Examples
    Create First HTTP Web Server in Node.js: Complete Tutorial
    Node.js NPM Tutorial: Create, Publish, Extend & Manage
  • 原文地址:https://www.cnblogs.com/donaldtdz/p/8638852.html
Copyright © 2011-2022 走看看