feat:api格式从newtonjson改为微软

This commit is contained in:
橙子
2024-10-27 21:48:39 +08:00
parent f6be4ad7ac
commit 71b7b7cc79
2 changed files with 14 additions and 27 deletions

View File

@@ -1,18 +0,0 @@
using System.Text.Json;
using System.Text.Json.Serialization;
namespace Yi.Framework.Core.Json;
public class EnumStringJsonConverter : JsonConverter<Enum>
{
public override Enum? Read(ref Utf8JsonReader reader, Type typeToConvert, JsonSerializerOptions options)
{
var enumString = reader.GetString();
return (Enum)Enum.Parse(typeToConvert, enumString);
}
public override void Write(Utf8JsonWriter writer, Enum value, JsonSerializerOptions options)
{
writer.WriteStringValue(value.ToString());
}
}

View File

@@ -1,10 +1,14 @@
using System.Globalization; using System.Globalization;
using System.Text; using System.Text;
using System.Text.Json.Serialization;
using System.Text.Json.Serialization.Metadata;
using System.Threading.RateLimiting; using System.Threading.RateLimiting;
using Microsoft.AspNetCore.Authentication.JwtBearer; using Microsoft.AspNetCore.Authentication.JwtBearer;
using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Mvc.Filters; using Microsoft.AspNetCore.Mvc.Filters;
using Microsoft.AspNetCore.Mvc.Rendering;
using Microsoft.Extensions.Options;
using Microsoft.IdentityModel.Tokens; using Microsoft.IdentityModel.Tokens;
using Microsoft.OpenApi.Models; using Microsoft.OpenApi.Models;
using Newtonsoft.Json.Converters; using Newtonsoft.Json.Converters;
@@ -18,6 +22,8 @@ using Volo.Abp.AspNetCore.Serilog;
using Volo.Abp.Auditing; using Volo.Abp.Auditing;
using Volo.Abp.Autofac; using Volo.Abp.Autofac;
using Volo.Abp.Caching; using Volo.Abp.Caching;
using Volo.Abp.Json;
using Volo.Abp.Json.SystemTextJson;
using Volo.Abp.MultiTenancy; using Volo.Abp.MultiTenancy;
using Volo.Abp.Swashbuckle; using Volo.Abp.Swashbuckle;
using Yi.Abp.Application; using Yi.Abp.Application;
@@ -106,14 +112,14 @@ namespace Yi.Abp.Web
// options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss"; // options.SerializerSettings.DateFormatString = "yyyy-MM-dd HH:mm:ss";
// options.SerializerSettings.Converters.Add(new StringEnumConverter()); // options.SerializerSettings.Converters.Add(new StringEnumConverter());
// }); // });
//请使用微软的 //请使用微软的注意abp date又包了一层采用DefaultJsonTypeInfoResolver统一覆盖
service.AddControllers().AddJsonOptions(options => Configure<JsonOptions>(options =>
{ {
options.JsonSerializerOptions.Converters.Add(new DatetimeJsonConverter()); options.JsonSerializerOptions.TypeInfoResolver = new DefaultJsonTypeInfoResolver();
options.JsonSerializerOptions.Converters.Add(new EnumStringJsonConverter()); options.JsonSerializerOptions.Converters.Add(new DatetimeJsonConverter());
} options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
); });
//设置缓存不要过期默认滑动20分钟 //设置缓存不要过期默认滑动20分钟
Configure<AbpDistributedCacheOptions>(cacheOptions => Configure<AbpDistributedCacheOptions>(cacheOptions =>
@@ -277,7 +283,6 @@ namespace Yi.Abp.Web
public override Task OnApplicationInitializationAsync(ApplicationInitializationContext context) public override Task OnApplicationInitializationAsync(ApplicationInitializationContext context)
{ {
var service = context.ServiceProvider; var service = context.ServiceProvider;
var env = context.GetEnvironment(); var env = context.GetEnvironment();
var app = context.GetApplicationBuilder(); var app = context.GetApplicationBuilder();