自定义返回Json大小写格式
作者:互联网
自定义返回Json大小写格式
.Net Core3.0 WebApi 目录
默认格式
在.net core 3中,默认的json返回格式为驼峰命名法(单驼峰)
有的时候,我们希望返回的全小写或者全大写等。当然微软爸爸已经提供了拓展的接口。
设置返回Json名称全大写(双驼峰)
startup.cs的ConfigureServices方法新加AddJsonOptions
services.AddControllers(option => { option.Filters.Add(typeof(GlobalExceptionsFilter)); }).AddJsonOptions(options => { options.JsonSerializerOptions.PropertyNamingPolicy = null;//解决后端传到前端全大写 options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All);//解决后端返回数据中文被编码 });
只要 ptions.JsonSerializerOptions.PropertyNamingPolicy = null就可以了。
这样返回的结果中,全是双驼峰了。
设置返回Json名称全小写
新建CustomJsonConvert文件夹,新建LowercasePolicy.cs,继JsonNamingPolicy
namespace WebApi.Core.Api.CustomJsonConvert { /// <summary> /// 返回对象全小写 /// </summary> public class LowercasePolicy : JsonNamingPolicy { public override string ConvertName(string name) => name.ToLower(); } }
startup.cs的ConfigureServices方法修改AddJsonOptions
services.AddControllers(option => { option.Filters.Add(typeof(GlobalExceptionsFilter)); }).AddJsonOptions(options => { // options.JsonSerializerOptions.PropertyNamingPolicy = null;//解决后端传到前端变小写 //空的字段不返回 options.JsonSerializerOptions.IgnoreNullValues = true; //返回json小写 options.JsonSerializerOptions.PropertyNamingPolicy = new LowercasePolicy(); options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All);//解决后端返回数据中文被编码 });
运行项目,测试接口,就全小写了。
格式化时间
CustomJsonConvert文件夹新建DateTimeConverter和DateTimeNullableConverter
namespace WebApi.Core.Api.CustomJsonConvert { public class DateTimeConverter : 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")); } } }
namespace WebApi.Core.Api.CustomJsonConvert { public class DateTimeNullableConverter : JsonConverter<DateTime?> { public override DateTime? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options) { return string.IsNullOrEmpty(reader.GetString()) ? default(DateTime?) : DateTime.Parse(reader.GetString()); } public override void Write(Utf8JsonWriter writer, DateTime? value, JsonSerializerOptions options) { writer.WriteStringValue(value?.ToString("yyyy-MM-dd HH:mm:ss")); } } }
AddJsonOptions添加进去
//时间格式格式化 options.JsonSerializerOptions.Converters.Add(new DateTimeConverter()); options.JsonSerializerOptions.Converters.Add(new DateTimeNullableConverter());
这样,如果我们的实体是Datetime类型那么最后输出的就是yyyy-MM-dd HH:mm:ss这种格式
其实这只是时间格式转换的一种方式。还有很多方式。比如,在响应实体里面,多加一个string类型的值,利用get;将其按照时间转换为相应的格式。
:SOA
.Net Core3.0 WebApi 十五:使用Serilog替换掉Log4j 冰乐 2020-10-15 00:32 阅读:932 评论:4 推荐:0 编辑 .Net Core3.0 WebApi 十四:基于AOP的切面redis缓存 冰乐 2020-10-15 00:31 阅读:1099 评论:3 推荐:0 编辑 .Net Core3.0 WebApi 十三:自定义返回Json大小写格式 冰乐 2020-10-15 00:30 阅读:1722 评论:0 推荐:0 编辑 .Net Core3.0 WebApi 十二:自定义全局消息返回过滤中间件 冰乐 2020-10-15 00:29 阅读:899 评论:0 推荐:0 编辑 .Net Core3.0 WebApi 十一:基于Log4j的全局异常处理 冰乐 2020-10-15 00:28 阅读:569 评论:0 推荐:0 编辑 .Net Core3.0 WebApi 十:使用AutoMapper实现模型映射 冰乐 2020-10-15 00:27 阅读:641 评论:0 推荐:1 编辑 .Net Core3.0 WebApi 九:使用Nginx实现跨域 冰乐 2020-10-11 00:20 阅读:546 评论:0 推荐:0 编辑 .Net Core3.0 WebApi 八:使用Redis做数据缓存 冰乐 2020-10-11 00:19 阅读:1662 评论:2 推荐:1 编辑 .Net Core3.0 WebApi 七:AutoFac 冰乐 2020-10-11 00:18 阅读:771 评论:0 推荐:1 编辑 .Net Core3.0 WebApi 六: Sqlsugar+异步泛型仓储 冰乐 2020-10-11 00:17 阅读:2321 评论:1 推荐:0 编辑 .Net Core3.0 WebApi 五:项目分层 冰乐 2020-10-11 00:15 阅读:1887 评论:1 推荐:2 编辑 .Net Core3.0 WebApi 四:JWT权限验证 冰乐 2020-10-11 00:14 阅读:3762 评论:12 推荐:1 编辑 .Net Core3.0 WebApi 三:读取appsettings.json 冰乐 2020-10-11 00:12 阅读:1611 评论:0 推荐:0 编辑 .Net Core3.0 WebApi 二:API 文档神器 Swagger 冰乐 2020-10-11 00:11 阅读:953 评论:0 推荐:1 编辑 .Net Core3.0 WebApi 一:实现简单的Resful Api 冰乐 2020-10-11 00:10 阅读:1037 评论:0 推荐:1 编辑 WebApi简介 冰乐 2019-09-22 17:55 阅读:18910 评论:0 推荐:1 编辑 RESTFul&HTTP GET简介 冰乐 2019-09-22 10:24 阅读:3030 评论:0 推荐:0 编辑 WebService简介 冰乐 2019-09-22 00:31 阅读:697 评论:0 推荐:0 编辑公告
昵称: 冰乐园龄: 4年4个月
粉丝: 68
关注: 49 +加关注
|
|||||||||
日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
---|---|---|---|---|---|---|---|---|---|
28 | 29 | 30 | 31 | 1 | 2 | 3 | |||
4 | 5 | 6 | 7 | 8 | 9 | 10 | |||
11 | 12 | 13 | 14 | 15 | 16 | 17 | |||
18 | 19 | 20 | 21 | 22 | 23 | 24 | |||
25 | 26 | 27 | 28 | 29 | 30 | 1 | |||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
搜索
常用链接
我的标签
- dotnet core(27)
- SOA(18)
- Go(17)
- C#(14)
- 设计模式(11)
- dotnet mvc(9)
- 前端(6)
- 数据库(5)
- 数据结构与算法(5)
- 微服务(3)
- 代码管理(2)
- MYSQL(2)
- RabbitMQ(2)
- Redis(2)
- ORM(2)
- docker(2)
- gRPC(1)
- 工具(1)
- GORM(1)
- 架构设计(1)
- OOP(1)
- 工具小技巧(1)
- AOP(1)
积分与排名
- 积分 - 137691
- 排名 - 8552
随笔档案 (118)
- 2022年9月(1)
- 2022年2月(1)
- 2021年11月(2)
- 2021年7月(1)
- 2021年6月(1)
- 2021年5月(6)
- 2021年4月(8)
- 2021年3月(1)
- 2021年2月(2)
- 2021年1月(4)
- 2020年12月(1)
- 2020年11月(2)
- 2020年10月(17)
- 2020年8月(3)
- 2020年6月(1)
- 更多
阅读排行榜
- 1. Vue+ElementUI的后台管理框架(181290)
- 2. WebApi简介(18910)
- 3. vue中使用echarts遇到的Error in v-on handler: "TypeError: Cannot read property 'getAttribute' of null"(15410)
- 4. DotNet Core中使用dapper(10683)
- 5. OAuth2、OpenID Connect简介(10264)
评论排行榜
- 1. .Net Core3.0 WebApi 四:JWT权限验证(12)
- 2. ASP.NET Core 3.0 WebApi中使用Swagger生成API文档简介(9)
- 3. JavaScript中const,var,let区别与用法(6)
- 4. .Net Core3.0 WebApi 十五:使用Serilog替换掉Log4j(4)
- 5. OAuth2、OpenID Connect简介(4)
推荐排行榜
- 1. ASP.NET Core 3.0 WebApi中使用Swagger生成API文档简介(10)
- 2. Vue+ElementUI的后台管理框架(6)
- 3. DotNet Core中使用dapper(4)
- 4. JavaScript中const,var,let区别与用法(3)
- 5. OAuth2、OpenID Connect简介(3)
最新评论
- 1. Re:.Net Core3.0 WebApi 五:项目分层
-
老哥,能把整个项目的目录结构截图分享一下吗?谢谢
- 2. Re:.Net Core3.0 WebApi 八:使用Redis做数据缓存
-
写的很不错,学习了,有一点不足的地方是接口代码忘记贴了。
- 3. Re:.Net Core3.0 WebApi 八:使用Redis做数据缓存
-
IredisCacheManager这个接口怎么编辑的
- 4. Re:.Net Core3.0 WebApi 四:JWT权限验证
-
老张的哲学
- 5. Re:MYSQL IN 一定走索引吗?
- 后续in中条件多了在数据量大的情况下也会走索引。 in中条件是否走索引需要结合表中数据量。 数据量小,in中条件过多时,mysql认为全表扫描代价相比于索引代价更小所以步骤索引了。 数据量大,in中条...
Powered by .NET 6 on Kubernetes
标签:WebApi,10,冰乐,自定义,2020,Json,大小写,Core3.0,Net 来源: https://www.cnblogs.com/Leo_wl/p/16669091.html