zoukankan      html  css  js  c++  java
  • asp.net core 3.1 MVC/WebApi JSON 全局配置

    asp.net core 3.1 MVC/WebApi JSON 全局配置

    • System.Text.Json(default)
    1. startup配置代码如下:
    using System.Text.Encodings.Web;
    using System.Text.Json;
    using System.Text.Unicode;
    
    public void ConfigureServices(IServiceCollection services)
    {
         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"));
            }
        }
    1. 官方API
    • Newtonsoft.Json
    1. Install-Package Microsoft.AspNetCore.Mvc.NewtonsoftJson -Version 3.1.0
    2. startup配置代码如下:
    using Newtonsoft.Json;
    using Newtonsoft.Json.Serialization;
    public void ConfigureServices(IServiceCollection services)
    {
        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;
                });
    }
  • 相关阅读:
    使用tcmalloc编译启动时宕机
    使用tcmalloc编译出现undefined reference to `sem_init'
    使用AddressSanitizer做内存分析(一)——入门篇
    VIM-美化你的标签栏
    Entity Framework Code First (六)存储过程
    Entity Framework Code First (五)Fluent API
    Entity Framework Code First (四)Fluent API
    Entity Framework Code First (三)Data Annotations
    Entity Framework Code First (二)Custom Conventions
    Entity Framework Code First (一)Conventions
  • 原文地址:https://www.cnblogs.com/51net/p/12457730.html
Copyright © 2011-2022 走看看