在aspNetCore中 使用System.Text.Json的定制功能, 將定制化的json返回給前端

C# 默認大寫, 而大部分的前端默認小寫, 這時候可以如此配置:

builder.Services.AddControllers().AddJsonOptions((opt) =>
{opt.JsonSerializerOptions.PropertyNamingPolicy = System.Text.Json.JsonNamingPolicy.CamelCase;opt.JsonSerializerOptions.WriteIndented = true;
});

JsonNamingPolicy 還有諸多配置方案. 下面介紹一些更加定制化的功能, 用控制臺程序舉例:

using JsonTest;
using System.ComponentModel;
using System.Text.Json;
using System.Text.Json.Serialization;List<Teacher> teachers = new();
for (int i = 0; i < 5; i++)
{teachers.Add(new(){Id = i + 1,FullName = $"FullName{i}"});
}Student student = new()
{Id = 1,FullName = "James",Description = "AAA",workDays = WorkDays.Monday| WorkDays.Tuesday,Teachers = teachers,Date = DateTime.Now
};JsonSerializerOptions options = new()
{WriteIndented = true,PropertyNamingPolicy = JsonNamingPolicy.CamelCase,
};
var a = JsonSerializer.Serialize<Student>(student, options);Console.WriteLine(a);class Student
{//定制化, TableId的首字母不會應用CamelCase[JsonPropertyName("TableId")]public int Id { get; set; }public string FullName { get; set; } = string.Empty;/// <summary>/// 序列化時忽略/// </summary>[JsonIgnore]public string Description { get; set; } = string.Empty;public DateTime Date { get; set; }[JsonConverter(typeof(JsonStringEnumConverter))]public WorkDays workDays { get; set; }public List<Teacher> Teachers { get; set; } = new();
}class Teacher
{public int Id { get; set; }public string FullName { get; set; } = string.Empty;
}[Flags]enum WorkDays{Monday = 1,Tuesday = 2,Wednesday = 4,Thursday = 8,Friday = 16,Saturday = 32,Sunday =64}

結果:
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/14388.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/14388.shtml
英文地址,請注明出處:http://en.pswp.cn/web/14388.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DSPF網絡類型實驗1

對R6配置 對R1配置 對R2 對R3 對R4 對R5 對R1R2R3R4R5加用戶 環回處理 然后開始配置缺省 R1有兩個下一跳 3&#xff0c;4&#xff0c;5同R2 然后對R1 dynamic動態 對R2 手寫 把注冊加上 register R3同R2處理

機柜里面的設備有哪些

一、服務器 服務器是機柜中最常見的設備之一。它們通常被用于存儲和運行數據、應用程序和服務。不同的服務器通常使用不同的操作系統和處理器架構&#xff0c;以滿足不同的需求。服務器可以使用冗余電源和冗余存儲空間等措施&#xff0c;以確保數據安全和可靠性。 二、交換機 交…

刪除鏈表的倒數第N個節點-力扣

第一種方法是使用前后指針&#xff0c;前指針先向前走n1步&#xff0c;然后前后指針同時向前&#xff0c;當前指針指向NULL時&#xff0c;后指針正好指向需要刪除的節點的前一個節點&#xff0c;操作后指針刪除即可。 代碼如下&#xff1a; /*** Definition for singly-linked…

醫學圖像分割

論文&#xff1a;Medical Image Segmentation Using Deep Learning: A Survey 參考&#xff1a;[醫學圖像分割綜述] Medical Image Segmentation Using Deep Learning: A Survey-CSDN博客 一、背景 特征表示的困難&#xff1a;模糊、噪聲、對比度低--->CNN屬于語義分割&a…

Web Server項目實戰2-Linux上的五種IO模型

上一節內容的補充&#xff1a;I/O多路復用是同步的&#xff0c;只有調用某些API才是異步的 Unix/Linux上的五種IO模型 a.阻塞 blocking 調用者調用了某個函數&#xff0c;等待這個函數返回&#xff0c;期間什么也不做&#xff0c;不停地去檢查這個函數有沒有返回&#xff0c…

Offline RL : Beyond Reward: Offline Preference-guided Policy Optimization

ICML 2023 paper code preference based offline RL&#xff0c;基于HIM&#xff0c;不依靠額外學習獎勵函數 Intro 本研究聚焦于離線偏好引導的強化學習&#xff08;Offline Preference-based Reinforcement Learning, PbRL&#xff09;&#xff0c;這是傳統強化學習&#x…

輕量音樂網站程序源碼,在線音樂免費聽歌

這是一個高品質的音樂共享和流媒體平臺&#xff0c;用戶可以在這個網站上免費在線聽歌。這個輕量級的音樂網站程序源碼&#xff0c;是您創建自己的音樂流媒體網站的最佳選擇&#xff01;它還支持制作插件&#xff0c;并且在更新后&#xff0c;您可以保留您的自定義設置。 下 載…

操作系統408考研-經典例題

什么是操作系統?答:操作系統,是計算機系統中最基本、最重要的系統軟件,是其它軟件 的***支撐***。控制和管理計算機系統的硬件和軟件資源,合理的組織計算機工 作流程,并為用戶使用計算機提供公共和基本的服務 2.多道程序 (multiprogrammming) 和多重處理 (multiprocessi…

Python基于PyQt6制作GUI界面——多選框

QCheckBox 是 PyQt6 中的一個復選框控件&#xff0c;它允許用戶通過單擊來選擇或取消選擇某個選項。與 QRadioButton 不同&#xff0c;QCheckBox 控件并不互斥&#xff0c;這意味著用戶可以同時選擇多個 QCheckBox。示例對應的制作的 ui文件 界面如下所示。 <?xml version…

【MATLAB源碼-第215期】基于matlab的8PSK調制CMA均衡和RLS-CMA均衡對比仿真,對比星座圖和ISI。

操作環境&#xff1a; MATLAB 2022a 1、算法描述 CMA算法&#xff08;恒模算法&#xff09; CMA&#xff08;Constant Modulus Algorithm&#xff0c;恒模算法&#xff09;是一種自適應盲均衡算法&#xff0c;主要用于消除信道對信號的碼間干擾&#xff08;ISI&#xff09;…

Python使用thread模塊實現多線程

介紹&#xff1a; 線程&#xff08;Threads&#xff09;是操作系統提供的一種輕量級的執行單元&#xff0c;可以在一個進程內并發執行多個任務。每個線程都有自己的執行上下文&#xff0c;包括棧、寄存器和程序計數器。 在Python中&#xff0c;可以使用threading模塊創建和管理…

SQL練習2.3

建表 # 學生表 create table t_student (stu_id varchar(10),stu_name varchar(10),stu_age datetime,stu_sex varchar(10) );# 課程表 create table t_t_course (c_id varchar(10),c_name varchar(10),c_teaid varchar(10) );# 教師表 create table t_t_teacher (tea…

nginx 動靜分離、gzip壓縮、負載均衡、root/alias

在Nginx中&#xff0c;動靜分離、gzip壓縮、負載均衡以及root和alias指令是常見的配置和優化點。下面我將分別解釋這些概念和如何配置它們。 動靜分離 動靜分離是指將動態請求和靜態請求分開處理&#xff0c;由不同的服務器或Nginx的不同位置來處理。這樣可以提高網站的性能和…

SpringBoot 啟動報錯,EnableConfigurationProperties 注解跳坑記

使用SpringBoot 腳手架搭建的一個簡單的 web demo &#xff0c;開啟了屬性自動注入&#xff0c;配置文件如下&#xff1a; Setter Getter Configuration ConfigurationProperties(prefix "com.ff") EnableConfigurationProperties(FFProperties.class) public clas…

今日刷三題(day14):ISBN號碼+kotori和迷宮+矩陣最長遞增路徑

題目一&#xff1a;ISBN號碼 題目描述&#xff1a; 每一本正式出版的圖書都有一個ISBN號碼與之對應&#xff0c;ISBN碼包括9位數字、1位識別碼和3位分隔符&#xff0c;其規定格式如“x-xxx-xxxxx-x”&#xff0c;其中符號“-”是分隔符&#xff08;鍵盤上的減號&#xff09;&…

STM32使用旋轉編碼開關

一、旋轉編碼開關如何工作 編碼器內部有一個開槽圓盤&#xff0c;連接到公共接地引腳 C。它還具有兩個接觸針 A 和 B&#xff0c;如下所示。 當您轉動旋鈕時&#xff0c;A 和 B 按照特定順序與公共接地引腳 C 接觸&#xff0c;具體順序取決于轉動旋鈕的方向。 當它們與公共地接…

在 package.json 文件中,版本號前的 ^ 符號含義

在 package.json 文件中&#xff0c;版本號前的 ^ 符號有特定的含義&#xff0c;它控制了包依賴的版本范圍。 具體來說&#xff0c;^ 符號表示兼容性范圍符號&#xff0c;允許安裝與指定版本兼容的更新版本。 例如&#xff0c;“vue”: “^3.0.0” 意味著&#xff1a; 可以安…

Web3 游戲平臺 Creo Engine 銷毀代幣總量的20%,以促進長遠發展

Creo Engine 5月16日進行了第三次代幣銷毀&#xff0c;這次的銷毀占代幣總量的 20%。一共銷毀了2億 $CERO 代幣&#xff0c;市場價值接近 2000 萬美元。 Creo Engine 致力于連接世界、為玩家提供一站式游戲中心&#xff0c;并提升 Web3 游戲體驗。 Creo Engine 發布于2022年&am…

USB抓包工具:bushound安裝及使用

一、環境搭建 下載busbound6.01安裝包&#xff0c;安裝完成&#xff0c;重啟電腦。 二、工具配置 按照下圖配置工具&#xff1a; 使能自動識別新設備 2. 設置抓取數據的容量 三、抓包 回到capture選項卡&#xff0c;在頁面的右下角有個run的按鈕&#xff0c;點擊使能&…

RedHat9 | 磁盤管理

硬盤分區類型 MBR分區方案 MBR也被稱為主引導記錄&#xff0c;它存在0柱面0磁道0扇區內&#xff0c;在磁盤的第一個扇區內&#xff0c;大小為512字節 512字節包含&#xff1a;446字節初始化程序加載器、64字節分區表、2字節校驗碼由于每個分區為16字節&#xff0c;所以MBR只…