ASP.Net Core基于ABP架構(gòu)配置To Json序列化
一、 前言
我們采用ABP架構(gòu)用MVC Controller或Web API返回給前端結(jié)果ToJson序列化后得到的屬性命名都是采用js的駝峰格式,即首字母小寫(xiě),后面單詞首字母大寫(xiě)的格式(如:后臺(tái)屬性名為OrderName,返回的前端js為orderName)。但在實(shí)際項(xiàng)目開(kāi)發(fā)中由于某種原因(比如給老系統(tǒng)提供接口或現(xiàn)有系統(tǒng)集成等)需要采用給后臺(tái)屬性名一致或自己特定的格式,下面就介紹一下基于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 為和后臺(tái)屬性名保持一致(即:后臺(tái)屬性名為OrderName,前端js獲得屬性名也為OrderName)
options.SerializerSettings.ContractResolver = new DefaultContractResolver();
//修改為CamelCasePropertyNamesContractResolver,為js的駝峰格式,即abp默認(rèn)格式(即:后臺(tái)屬性名為OrderName,前端js獲得屬性名為orderName)
//options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
});
}
}三、ToJson序列化自定義配置
如果需要自定義ToJson序列化格式,需要先寫(xiě)一個(gè)子類繼承DefaultContractResolver,重寫(xiě)ResolvePropertyName方法,代碼如下:
public class MyPropertyNamesContractResolver : DefaultContractResolver
{
protected override string ResolvePropertyName(string propertyName)
{
//屬性名全部返回小寫(xiě)
return propertyName .ToLower();
}
}再參考第二點(diǎn)在Startup文件將配置替換為MyPropertyNamesContractResolver
services.AddMvc()
.AddJsonOptions(options =>
{
//配置tojson格式替換為自定義格式 MyPropertyNamesContractResolver (即:后臺(tái)屬性名為OrderName,前端js獲得屬性名為ordername)
options.SerializerSettings.ContractResolver = new MyPropertyNamesContractResolver();
options.SerializerSettings.DateFormatString = "yyyy'-'MM'-'dd' 'HH':'mm':'ss"; //返回給前臺(tái)的JSON數(shù)據(jù)中時(shí)間格式去掉T
});到此這篇關(guān)于ASP.Net Core基于ABP架構(gòu)配置To Json序列化的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
ASP.net(C#)實(shí)現(xiàn)簡(jiǎn)易聊天室功能
這篇文章主要為大家詳細(xì)介紹了ASP.net實(shí)現(xiàn)簡(jiǎn)易聊天室功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02
Asp.net 時(shí)間操作基類(支持短日期,長(zhǎng)日期,時(shí)間差)
支持短日期,長(zhǎng)日期,時(shí)間差的操作基類,方便大家直接使用2008-11-11
.NET 6開(kāi)發(fā)TodoList應(yīng)用引入數(shù)據(jù)存儲(chǔ)
這篇文章主要介紹了.NET 6開(kāi)發(fā)TodoList應(yīng)用引入數(shù)據(jù)存儲(chǔ),本篇文章僅完成了數(shù)據(jù)存儲(chǔ)服務(wù)的配置工作,目前還沒(méi)有添加任何實(shí)體對(duì)象和數(shù)據(jù)庫(kù)表定義,所以暫時(shí)沒(méi)有可視化的驗(yàn)證,僅我們可以運(yùn)行程序看我們的配置是否成功:下面來(lái)看詳細(xì)內(nèi)容吧2021-12-12
詳解.NET中string與StringBuilder在字符串拼接功能上的比較
string與StringBuilder的在字符串拼接時(shí)執(zhí)行效率上有差異,這篇文章主要介紹了詳解.NET中string與StringBuilder在字符串拼接功能上的比較,感興趣的小伙伴們可以參考一下2018-11-11
Json日期格式問(wèn)題的四種解決方法(超詳細(xì))
這篇文章主要介紹了Json日期格式問(wèn)題的四種解決方法,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03
淺析GridView中顯示時(shí)間日期格式的問(wèn)題
下面小編就為大家?guī)?lái)一篇淺析GridView中顯示時(shí)間日期格式的問(wèn)題。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2016-05-05
ASP.NET 通過(guò)攔截器記錄錯(cuò)誤日志的示例代碼
這篇文章主要介紹了ASP.NET 通過(guò)攔截器記錄錯(cuò)誤日志的示例代碼,幫助大家更好的理解和學(xué)習(xí)使用.NET技術(shù),感興趣的朋友可以了解下2021-04-04
jQuery+Asp.Net實(shí)現(xiàn)省市二級(jí)聯(lián)動(dòng)功能的方法
這篇文章主要介紹了jQuery+Asp.Net實(shí)現(xiàn)省市二級(jí)聯(lián)動(dòng)功能的方法,涉及asp.net數(shù)據(jù)庫(kù)讀取與字符串轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2017-05-05
DataGridView中CheckBox實(shí)現(xiàn)某一列單選
DataGridView中CheckBox實(shí)現(xiàn)某一列單選,需要的朋友可以參考一下2013-02-02

