zoukankan      html  css  js  c++  java
  • asp.net core 3 WebApi System.Text.Json 返回数据配置

    一、System.Text.Json

    引用:

    using System.Text.Encodings.Web;
    using System.Text.Json;
    using System.Text.Unicode;
     
    

      

      services.AddJsonOptions(options =>
                {
                    //格式化日期时间格式
                    options.JsonSerializerOptions.Converters.Add(new DatetimeJsonConverter());
                    //数据格式首字母小写
                    //options.JsonSerializerOptions.PropertyNamingPolicy =JsonNamingPolicy.CamelCase;
                    //数据格式原样输出
                    options.JsonSerializerOptions.PropertyNamingPolicy = null;
                    //取消Unicode编码
                    options.JsonSerializerOptions.Encoder = JavaScriptEncoder.Create(UnicodeRanges.All);
                    //忽略空值
                    options.JsonSerializerOptions.IgnoreNullValues = true;
                    //允许额外符号
                    options.JsonSerializerOptions.AllowTrailingCommas = true;
                    //反序列化过程中属性名称是否使用不区分大小写的比较
                    options.JsonSerializerOptions.PropertyNameCaseInsensitive = false;
                });
    

      扩展:

    using System;
    using System.Text.Json;
    using System.Text.Json.Serialization;
    
    
    public class DatetimeJsonConverter : JsonConverter<DateTime>
        {
            public override DateTime Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
            {
                if (reader.TokenType == JsonTokenType.String)
                {
                    if (DateTime.TryParse(reader.GetString(), out DateTime date))
                        return date;
                }
                return reader.GetDateTime();
            }
    
            public override void Write(Utf8JsonWriter writer, DateTime value, JsonSerializerOptions options)
            {
                writer.WriteStringValue(value.ToString("yyyy-MM-dd HH:mm:ss"));
            }
        }
    

      二、Newtonsoft.Json

    1. Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson -Version 3.1.0
    2. startup配置代码如下: 
    3. 引用:
      using Newtonsoft.Json;
      using Newtonsoft.Json.Serialization;
      

        

      services.AddNewtonsoftJson(options =>
                  {
                      //设置时间格式
                      options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
                      //忽略循环引用
                      options.SerializerSettings.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
                      //数据格式首字母小写
                      //options.SerializerSettings.ContractResolver = new CamelCasePropertyNamesContractResolver();
                      //数据格式按原样输出
                      options.SerializerSettings.ContractResolver = new DefaultContractResolver();
                      //忽略空值
                      options.SerializerSettings.NullValueHandling = NullValueHandling.Ignore;
                  });
       
  • 相关阅读:
    java.lang.NoSuchMethodError:antlr.collections.AST.getLine() I
    T7 java Web day01 标签HTML
    T6 s1 day19
    T5 s5 Day18
    T5 s4 Day 17
    T5 s3 day16
    T5 s2 Day 15
    T5 s1 day14
    T4 S03 day 12
    T4 S01 day1
  • 原文地址:https://www.cnblogs.com/wfpanskxin/p/12917941.html
Copyright © 2011-2022 走看看