ASP.Net Core基于ABP架構(gòu)配置To Json序列化
一、 前言
我們采用ABP架構(gòu)用MVC Controller或Web API返回給前端結(jié)果ToJson序列化后得到的屬性命名都是采用js的駝峰格式,即首字母小寫,后面單詞首字母大寫的格式(如:后臺屬性名為OrderName,返回的前端js為orderName)。但在實(shí)際項(xiàng)目開發(fā)中由于某種原因(比如給老系統(tǒng)提供接口或現(xiàn)有系統(tǒng)集成等)需要采用給后臺屬性名一致或自己特定的格式,下面就介紹一下基于ABP架構(gòu)ToJson如何修改默認(rèn)配置和自定義配置。
二、 修改ToJson序列化默認(rèn)配置
在Startup文件進(jìn)行默認(rèn)配置修改,代碼如下:
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默認(rèn)格式(即:后臺屬性名為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(); } }
再參考第二點(diǎn)在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 });
到此這篇關(guān)于ASP.Net Core基于ABP架構(gòu)配置To Json序列化的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
ASP.net(C#)實(shí)現(xiàn)簡易聊天室功能
這篇文章主要為大家詳細(xì)介紹了ASP.net實(shí)現(xiàn)簡易聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-02-02.NET 6開發(fā)TodoList應(yīng)用引入數(shù)據(jù)存儲
這篇文章主要介紹了.NET 6開發(fā)TodoList應(yīng)用引入數(shù)據(jù)存儲,本篇文章僅完成了數(shù)據(jù)存儲服務(wù)的配置工作,目前還沒有添加任何實(shí)體對象和數(shù)據(jù)庫表定義,所以暫時沒有可視化的驗(yàn)證,僅我們可以運(yùn)行程序看我們的配置是否成功:下面來看詳細(xì)內(nèi)容吧2021-12-12詳解.NET中string與StringBuilder在字符串拼接功能上的比較
string與StringBuilder的在字符串拼接時執(zhí)行效率上有差異,這篇文章主要介紹了詳解.NET中string與StringBuilder在字符串拼接功能上的比較,感興趣的小伙伴們可以參考一下2018-11-11jQuery+Asp.Net實(shí)現(xiàn)省市二級聯(lián)動功能的方法
這篇文章主要介紹了jQuery+Asp.Net實(shí)現(xiàn)省市二級聯(lián)動功能的方法,涉及asp.net數(shù)據(jù)庫讀取與字符串轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2017-05-05DataGridView中CheckBox實(shí)現(xiàn)某一列單選
DataGridView中CheckBox實(shí)現(xiàn)某一列單選,需要的朋友可以參考一下2013-02-02