ASP.Net Core基于ABP架構配置To Json序列化
一、 前言
我們采用ABP架構用MVC Controller或Web API返回給前端結果ToJson序列化后得到的屬性命名都是采用js的駝峰格式,即首字母小寫,后面單詞首字母大寫的格式(如:后臺屬性名為OrderName,返回的前端js為orderName)。但在實際項目開發(fā)中由于某種原因(比如給老系統(tǒng)提供接口或現(xiàn)有系統(tǒng)集成等)需要采用給后臺屬性名一致或自己特定的格式,下面就介紹一下基于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數(shù)據(jù)中時間格式去掉T
});到此這篇關于ASP.Net Core基于ABP架構配置To Json序列化的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
asp.net core 獲取 MacAddress 地址方法示例
這篇文章主要介紹了asp.net core獲取MacAddress地址方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02
Entity Framework使用Code First模式管理事務
本文詳細講解了Entity Framework使用Code First模式管理事務的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-03-03
一個ASP.NET的MYSQL的數(shù)據(jù)庫操作類自己封裝的
這篇文章主要介紹了一個ASP.NET的MYSQL的數(shù)據(jù)庫操作類自己封裝的,在數(shù)據(jù)庫操作類中的連接字符串中記得加上charset=utf8 需要的朋友可以參考下2014-08-08
ASP.NET WebService中使用ASP.NET_SessionId的問題說明
proxy.CookieContainer存儲了客戶端的 ASP.NET_SessionId。這樣以后每次通過webservice 方法調用時,都會將ASP.NET_SessionId傳遞到服務器端。2011-09-09
asp.net實現(xiàn)訪問局域網共享目錄下文件的解決方法
這篇文章主要介紹了asp.net實現(xiàn)訪問局域網共享目錄下文件的解決方法,需要的朋友可以參考下2014-07-07
WPF自定義Expander控件樣式實現(xiàn)酷炫Style
這篇文章介紹了WPF自定義Expander控件樣式實現(xiàn)酷炫Style的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-01-01

