• asp.net core 如何统一json序列化格式


    oldconfig.AllFields =  Newtonsoft.Json.JsonConvert.SerializeObject(sqlParameters.AllFields);
    
    • 1

    在start.cs文件中

    
                JsonConvert.DefaultSettings = new Func<JsonSerializerSettings>(() =>
                {
    
                    JsonSerializerSettings jsonsetting = new JsonSerializerSettings()
                    {
                        Formatting = Formatting.None,
                        ContractResolver = new DefaultContractResolver()
                    };
                    //日期类型默认格式化处理
                    jsonsetting.DateFormatHandling = Newtonsoft.Json.DateFormatHandling.MicrosoftDateFormat;
                    jsonsetting.DateFormatString = "yyyy-MM-dd HH:mm:ss"; 
                    jsonsetting.Converters.Add(new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" });
                    jsonsetting.Converters.Add(new StringEnumConverter());
                    jsonsetting.ContractResolver = new DefaultContractResolver();
                    //空值处理
                    jsonsetting.NullValueHandling = NullValueHandling.Include;
    
                    return jsonsetting;
                });
    
    
    上面用来初始化, 后台代码中Newtonsoft.Json.JsonConvert.SerializeObject() 方法的默认参数
    上面用来初始化, 后台代码中Newtonsoft.Json.JsonConvert.SerializeObject() 方法的默认参数
    上面用来初始化, 后台代码中Newtonsoft.Json.JsonConvert.SerializeObject() 方法的默认参数
    
    
    下面用来初始化, Controller返回对象的json格式化参数。
    下面用来初始化, Controller返回对象的json格式化参数。
    下面用来初始化, Controller返回对象的json格式化参数。
                // services.MvcOptions.EnableEndpointRouting = false
                services .AddMvc(options => options.EnableEndpointRouting = false)
    
                        //.SetCompatibilityVersion(CompatibilityVersion.Version_3_0);
    
                        //解决JObject接收参数的问题 start
                        //.AddNewtonsoftJson()
                        .AddNewtonsoftJson(options =>
                        {
                            options.SerializerSettings.ContractResolver = new DefaultContractResolver();
                            //长整型序列化为字符串                    
                            //options.SerializerSettings.Converters.Add(new LongToStringConverter());
                            //枚举转字符串,而不是数值
                            options.SerializerSettings.Converters.Add(new StringEnumConverter());
    
                            //时间格式化                    
                            //options.SerializerSettings.Converters.Add(new DateTimeFormatConverter("yyyy-MM-dd HH:mm:ss"));
    
                            options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
    
                            options.SerializerSettings.Converters.Add(new IsoDateTimeConverter() { DateTimeFormat = "yyyy-MM-dd HH:mm:ss" });
    
                            //空值处理,序列化和反序列化时, 空值也要转换输出。
                            options.SerializerSettings.NullValueHandling = NullValueHandling.Include;
    
                        })
                        .AddJsonOptions(options => {
                            options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter()); 
                        });
                    //解决JObject接收参数的问题
                ;
    
    • 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
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59
    • 60
    • 61

    为什么要写两次?

    第一次在 JsonConvert.DefaultSettings 中设置的初始值是给自己的代码调用Newtonsoft.Json.JsonConvert.SerializeObject() 方法的默认参数

    AddNewtonsoftJson() 中用来初始化, Controller返回对象的json格式化参数。

  • 相关阅读:
    使用ChatGPT高效完成简历制作[中篇]-有爱AI实战教程(五)
    SSM整合(细节拉满)|将Mybatis、Spring、SpringMVC三个框架整合起来,通过一个demo来练习
    Nginx的核心配置文件详解
    Mapbox加载arcgis的底图
    运维面试题1
    如何从 Android 中恢复误删除的照片
    Linux环境搭建Nginx+Tomcat负载均衡集群
    引线连接不紧都可能导致变压器直流电阻不平衡率超标
    C# 面试题及答案整理,最新面试题
    iVX低代码平台系列制作简单的登录界面
  • 原文地址:https://blog.csdn.net/phker/article/details/133622132