当前位置:   article > 正文

vs2022 搭建NET6 WebApi 接口项目《六》 返回参数配置_webapi 6 json 参数

webapi 6 json 参数

1、配置Json返回格式和时间格式

  1. #region 配置返回值格式
  2. builder.Services.AddControllers()
  3. .AddJsonOptions(options =>
  4. {
  5. //格式化日期时间格式
  6. options.JsonSerializerOptions.Converters.Add(new DatetimeJsonConverter("yyyy-MM-dd HH:mm:ss"));
  7. //数据格式首字母小写
  8. //options.JsonSerializerOptions.PropertyNamingPolicy =JsonNamingPolicy.CamelCase;
  9. //数据格式原样输出
  10. options.JsonSerializerOptions.PropertyNamingPolicy = null;
  11. //取消Unicode编码
  12. options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All);
  13. //忽略空值
  14. options.JsonSerializerOptions.IgnoreNullValues = true;
  15. //允许额外符号
  16. options.JsonSerializerOptions.AllowTrailingCommas = true;
  17. //反序列化过程中属性名称是否使用不区分大小写的比较
  18. options.JsonSerializerOptions.PropertyNameCaseInsensitive = false;
  19. });
  20. builder.Services.AddEndpointsApiExplorer();
  21. #endregion

2、DatetimeJsonConverter类

  1. /// <summary>
  2. /// 格式化返回的时间格式
  3. /// </summary>
  4. public class DatetimeJsonConverter : JsonConverter<DateTime>
  5. {
  6. private readonly string format;
  7. public DatetimeJsonConverter(string _format)
  8. {
  9. format = _format;
  10. }
  11. public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
  12. {
  13. if (reader.TokenType == JsonTokenType.String)
  14. {
  15. if (DateTime.TryParse(reader.GetString(), out DateTime date))
  16. return date;
  17. }
  18. return reader.GetDateTime();
  19. }
  20. public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
  21. {
  22. writer.WriteStringValue(value.ToString(format));
  23. }
  24. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/550411
推荐阅读
相关标签
  

闽ICP备14008679号