一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - ASP.NET教程 - ASP.NET Core Web API設置響應輸出的Json數據格式的兩種方式

ASP.NET Core Web API設置響應輸出的Json數據格式的兩種方式

2023-12-17 00:06未知服務器之家 ASP.NET教程

前言 在ASP.NET Core Web API中設置響應輸出Json數據格式有兩種方式,可以通過添加 System.Text.Json 或 Newtonsoft.Json JSON序列化和反序列化庫在應用程序中全局設置接口響應的Json數據格式,本文示例使用的是新的Minimal API模式。 JSON序列化和

前言

在ASP.NET Core Web API中設置響應輸出Json數據格式有兩種方式,可以通過添加System.Text.JsonNewtonsoft.JsonJSON序列化和反序列化庫在應用程序中全局設置接口響應的Json數據格式,本文示例使用的是新的Minimal API模式。

JSON序列化和反序列化庫

System.Text.Json

System.Text.Json是 .NET Core 3.0 及以上版本中內置的 JSON 序列化和反序列化庫。

Newtonsoft.Json

Newtonsoft.Json是一個功能強大且靈活的.NET JSON序列化和反序列化庫,用于在.NET應用程序中處理JSON數據。

設置Json統一格式需求

  1. 修改屬性名稱的序列化方式,在.Net Core中默認使用小駝峰序列化Json屬性參數,前端想要使用與后端模型本身命名格式輸出(如:UserName)。
  2. 日期類型默認格式化處理,設置為:yyyy-MM-dd HH:mm:ss。

未配置之前的API輸出Json數據

UserInfoModel

????public?class?UserInfoModel
????{
????????public?DateTime?DateTime?{?get;?set;?}

????????public?int?NumberIndex?{?get;?set;?}

????????public?string?UserName?{?get;?set;?}
????}

UserInfoController

????[ApiController]
????[Route("[controller]")]
????public?class?UserInfoController?:?ControllerBase
????{
????????private?static?readonly?string[]?NameList?=?new[]?{?"追逐時光者",?"小明同學",?"DotNetGuide",?"小藝同學",?"Edwin"?};


????????[HttpGet(Name?=?"GetUserInfo")]
????????public?IEnumerable<UserInfoModel>?Get()
????????{
????????????return?Enumerable.Range(1,?5).Select(index?=>?new?UserInfoModel
????????????{
????????????????DateTime?=?DateTime.Now.AddDays(index),
????????????????NumberIndex?=?Random.Shared.Next(-20,?55),
????????????????UserName?=?NameList[Random.Shared.Next(NameList.Length)]
????????????}).ToArray();
????????}
????}

輸出Json數據

ASP.NET Core Web API設置響應輸出的Json數據格式的兩種方式

System.Text.Json程序全局配置

添加自定義時間輸出格式類(DateTimeJsonConverter)

????public?class?DateTimeJsonConverter?:?JsonConverter<DateTime>
????{
????????public?override?DateTime?Read(ref?Utf8JsonReader?reader,?Type?typeToConvert,?JsonSerializerOptions?options)
????????{
????????????return?DateTime.Parse(reader.GetString());
????????}

????????public?override?void?Write(Utf8JsonWriter?writer,?DateTime?value,?JsonSerializerOptions?options)
????????{
????????????writer.WriteStringValue(value.ToString("yyyy-MM-dd?HH:mm:ss"));
????????}
????}

在Program.cs中全局配置

????????????builder.Services.AddControllers().AddJsonOptions(options?=>
????????????{
????????????????//命名規則,該值指定用于將對象上的屬性名稱轉換為另一種格式(例如駝峰大小寫)或為空以保持屬性名稱不變的策略[前端想要使用與后端模型本身命名格式輸出]。
????????????????options.JsonSerializerOptions.PropertyNamingPolicy?=?null;

????????????????//自定義輸出的時間格式
????????????????options.JsonSerializerOptions.Converters.Add(new?DateTimeJsonConverter());
????????????});

配置后輸出的Json數據

ASP.NET Core Web API設置響應輸出的Json數據格式的兩種方式

Newtonsoft.Json程序全局配置

說明

在.NET 3.0及其以上的版本使用Newtonsoft.Json需要通過安裝?Microsoft.AspNetCore.Mvc.NewtonsoftJson?包來進行配置(注意假如提示該包安裝失敗可以嘗試安裝其他版本的包)。

ASP.NET Core Web API設置響應輸出的Json數據格式的兩種方式

在Program.cs中全局配置

????????????builder.Services.AddControllers().AddNewtonsoftJson(options?=>
????????????{
????????????????//修改屬性名稱的序列化方式[前端想要使用與后端模型本身命名格式輸出]
????????????????options.SerializerSettings.ContractResolver?=?null;

????????????????//方式1:日期類型默認格式化處理?
????????????????options.SerializerSettings.Converters.Add(new?IsoDateTimeConverter()?{?DateTimeFormat?=?"yyyy-MM-dd?HH:mm:ss"?});
????????????????//方式2:日期類型默認格式化處理?
????????????????//options.SerializerSettings.DateFormatHandling?=?Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat;
????????????????//options.SerializerSettings.DateFormatString?=?"yyyy-MM-dd?HH:mm:ss";
????????????});

配置后輸出的Json數據

ASP.NET Core Web API設置響應輸出的Json數據格式的兩種方式

DotNetGuide技術社區交流群

  • DotNetGuide技術社區是一個面向.NET開發者的開源技術社區,旨在為開發者們提供全面的C#/.NET/.NET Core相關學習資料、技術分享和咨詢、項目推薦、招聘資訊和解決問題的平臺。
  • 在這個社區中,開發者們可以分享自己的技術文章、項目經驗、遇到的疑難技術問題以及解決方案,并且還有機會結識志同道合的開發者。
  • 我們致力于構建一個積極向上、和諧友善的.NET技術交流平臺,為廣大.NET開發者帶來更多的價值和成長機會。

歡迎加入DotNetGuide技術社區微信交流群

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 9420高清完整版在线观看国语 | 国产一区在线免费观看 | 久久99国产视频 | 国产成人精品日本亚洲网站 | 夫妇交换小说全文阅读 | 国产亚洲综合成人91精品 | 羞羞答答免费人成黄页在线观看国产 | 亚洲激情在线 | 国产动作大片 | 国模一区二区三区视频一 | 金牛网155755水心论坛黄大父母 | 日本一道高清不卡免费 | 亚洲AV无码国产精品色在线看 | 亚洲成a人不卡在线观看 | 91夜夜人人揉人人捏人人添 | 国内精品久久久久久久久久久久 | 女人pp被扒开流水了 | 欧美理论片手机在线观看片免费 | 国产精品边做边接电话在线观看 | 亚洲品质自拍视频网站 | 日本一区二区视频在线 | www视频免费看 | 无颜之月全集免费观看 | 成年人在线视频免费观看 | 无套日出白浆在线播放 | 精品欧美| 免费观看欧美性一级 | 亚洲国产精品ⅴa在线观看 亚洲国产高清一区二区三区 | 91寡妇天天综合久久影院 | 香蕉精品高清在线观看视频 | 国产玖玖在线观看 | 精品午夜中文字幕熟女人妻在线 | 亚洲精品一区二区三区中文字幕 | 国产精品香蕉夜间视频免费播放 | 日韩一区国产二区欧美三 | 精品无码人妻一区二区免费AV | 免费又爽又黄禁片视频在线播放 | 国产小青蛙 | 国产精品国产三级在线专区 | 麻豆视频网 | 好大好硬好长好爽a网站 |