马上加入IBC程序猿 各种源码随意下,各种教程随便看! 注册 每日签到 加入编程讨论群

C#教程 ASP.NET教程 C#视频教程程序源码享受不尽 C#技术求助 ASP.NET技术求助

【源码下载】 社群合作 申请版主 程序开发 【远程协助】 每天乐一乐 每日签到 【承接外包项目】 面试-葵花宝典下载

官方一群:

官方二群:

asp.net core 3.0 MVC JSON 全局配置

[复制链接]
查看2267 | 回复3 | 2019-12-26 09:05:41 | 显示全部楼层 |阅读模式

asp.net core 3.0 MVC JSON 全局设置

  • System.Text.Json(default)
  1. startup设置代码如下:
  1. <code>using System.Text.Encodings.Web;
  2. using System.Text.Json;
  3. using System.Text.Unicode;
  4. public void ConfigureServices(IServiceCollection services)
  5. {
  6. services.AddJsonOptions(options =>
  7. {
  8. //格式化日期时间格式
  9. options.JsonSerializerOptions.Converters.Add(new DatetimeJsonConverter());
  10. //数据格式首字母小写
  11. //options.JsonSerializerOptions.PropertyNamingPolicy =JsonNamingPolicy.CamelCase;
  12. //数据格式原样输出
  13. options.JsonSerializerOptions.PropertyNamingPolicy = null;
  14. //取消Unicode编码
  15. options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All);
  16. //忽略空值
  17. options.JsonSerializerOptions.IgnoreNullValues = true;
  18. //答应额外符号
  19. options.JsonSerializerOptions.AllowTrailingCommas = true;
  20. //反序列化过程中属性名称是否利用不区分巨细写的比力
  21. options.JsonSerializerOptions.PropertyNameCaseInsensitive = false;
  22. });
  23. }</code>
复制代码
  1. <code>using System;
  2. using System.Text.Json;
  3. using System.Text.Json.Serialization;
  4. public class DatetimeJsonConverter : JsonConverter<DateTime>
  5. {
  6. public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
  7. {
  8. if (reader.TokenType == JsonTokenType.String)
  9. {
  10. if (DateTime.TryParse(reader.GetString(), out DateTime date))
  11. return date;
  12. }
  13. return reader.GetDateTime();
  14. }
  15. public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
  16. {
  17. writer.WriteStringValue(value.ToString("yyyy-MM-dd HH:mm:ss"));
  18. }
  19. }</code>
复制代码
  1. 官方API
  • Newtonsoft.Json
  1. Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson -Version 3.1.0
  2. startup设置代码如下:
  1. <code>using Newtonsoft.Json;
  2. using Newtonsoft.Json.Serialization;
  3. public void ConfigureServices(IServiceCollection services)
  4. {
  5. services.AddNewtonsoftJson(options =>
  6. {
  7. //设置时间格式
  8. options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
  9. //忽略循环引用
  10. options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
  11. //数据格式首字母小写
  12. //options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
  13. //数据格式按原样输出
  14. options.SerializerSettings.ContractResolver = new DefaultContractResolver();
  15. //忽略空值
  16. options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
  17. });
  18. }</code>
复制代码
C#论坛 www.ibcibc.com IBC编程社区
C#
C#论坛
IBC编程社区
*滑块验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则