ASP.Net Core基于ABP架構(gòu)配置To Json序列化
一、 前言
我們采用ABP架構(gòu)用MVC Controller或Web API返回給前端結(jié)果ToJson序列化后得到的屬性命名都是采用js的駝峰格式,即首字母小寫,后面單詞首字母大寫的格式(如:后臺(tái)屬性名為OrderName,返回的前端js為orderName)。但在實(shí)際項(xiàng)目開發(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序列化格式,需要先寫一個(gè)子類繼承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 (即:后臺(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序列化的文章就介紹到這了。希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
asp.net core 獲取 MacAddress 地址方法示例
這篇文章主要介紹了asp.net core獲取MacAddress地址方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-02-02
asp.net forms身份驗(yàn)證,避免重復(fù)造輪子
最近開始一個(gè)小 asp.net 項(xiàng)目,整個(gè)項(xiàng)目需要登錄才能操作。以前大家都采用 asp 的方式 session + cookie 來實(shí)現(xiàn)身份驗(yàn)證,我一直對 asp.net 自帶的 forms 驗(yàn)證早就耳聞,苦于沒實(shí)踐,今天剛好逮到機(jī)會(huì)實(shí)際應(yīng)用一下。2009-11-11
Entity Framework使用Code First模式管理事務(wù)
本文詳細(xì)講解了Entity Framework使用Code First模式管理事務(wù)的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-03-03
一個(gè)ASP.NET的MYSQL的數(shù)據(jù)庫操作類自己封裝的
這篇文章主要介紹了一個(gè)ASP.NET的MYSQL的數(shù)據(jù)庫操作類自己封裝的,在數(shù)據(jù)庫操作類中的連接字符串中記得加上charset=utf8 需要的朋友可以參考下2014-08-08
ASP.NET WebService中使用ASP.NET_SessionId的問題說明
proxy.CookieContainer存儲(chǔ)了客戶端的 ASP.NET_SessionId。這樣以后每次通過webservice 方法調(diào)用時(shí),都會(huì)將ASP.NET_SessionId傳遞到服務(wù)器端。2011-09-09
asp.net實(shí)現(xiàn)訪問局域網(wǎng)共享目錄下文件的解決方法
這篇文章主要介紹了asp.net實(shí)現(xiàn)訪問局域網(wǎng)共享目錄下文件的解決方法,需要的朋友可以參考下2014-07-07
WPF自定義Expander控件樣式實(shí)現(xiàn)酷炫Style
這篇文章介紹了WPF自定義Expander控件樣式實(shí)現(xiàn)酷炫Style的方法,文中通過示例代碼介紹的非常詳細(xì)。對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-01-01
ASP.NET 站點(diǎn)地圖(sitemap)簡明教程
畢業(yè)設(shè)計(jì)折騰了近一個(gè)月的時(shí)間,也將近完工階段。下個(gè)禮拜六是論文答辯時(shí)間,所以今天晚上就抽空想去弄一下站點(diǎn)地圖。不怕大俠們笑話,我在以前還真沒弄過這些。以前開發(fā)過幾個(gè)項(xiàng)目都是系統(tǒng)類,也就沒怎么涉及了2012-04-04

