.net core3.1 web api中使用newtonsoft替换掉默认的json序列化组件
Posted 吕小不
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.net core3.1 web api中使用newtonsoft替换掉默认的json序列化组件相关的知识,希望对你有一定的参考价值。
在微软的文档中,有着较为详细的替换教程
https://docs.microsoft.com/zh-cn/aspnet/core/web-api/advanced/formatting?view=aspnetcore-3.1
但是微软的文档并不算太详细,对于新手而言,着实不算太友好。以下是我基于微软给出的方案,列出的更为详尽的方案。
第一步,引入包
第二步,修改sartups.cs中的 ConfigureServices
services.AddControllers() #region newtonsoft .AddNewtonsoftJson(options => { //修改属性名称的序列化方式,首字母小写 options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver(); //修改时间的序列化方式 options.SerializerSettings.Converters.Add(new IsoDateTimeConverter() { DateTimeFormat = "yyyy/MM/dd HH:mm:ss" }); } ); #endregion
至此,替换步骤结束。
接下来,让我们看一下是否是真的替换成功。
首先,在控制器里,添加一个get方法,输出类型为jsonresult
在GetCartInfo方法中,返回类型如下
这是标准的C#命名方式,而我们前面配置的newtonsoft中,将属性首字母设置为了小写
接下来运行项目,使用postman测试接口,测试结果如下:
可以发现,接收到的json数据中,所有名称都是小写开头,说明我们前面的配置已经生效。
至此,替换成功。
以上是关于.net core3.1 web api中使用newtonsoft替换掉默认的json序列化组件的主要内容,如果未能解决你的问题,请参考以下文章
Httpclient在.net core3.1上成功运行,但更新到.net 5中连接超时(System.Net.Sockets.SocketException (10060)) C#
.net core3.1 webapi + vue.js + axios实现跨域
ASP.NET Web API 身份验证(Web + 移动)
C# 一个基于.NET Core3.1的开源项目帮你彻底搞懂WPF框架Prism