我有net6.0
最小 api 的项目,我想使用NetwtonsoftJson
而不是内置System.Text.Json
库来进行序列化和反序列化。
目前我有这个配置,JsonOptions
并且可以按预期工作
builder.Services.Configure<JsonOptions>(options =>
{
options.SerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
options.SerializerOptions.WriteIndented = true;
options.SerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles;
options.SerializerOptions.Converters.Add(new JsonStringEnumConverter(JsonNamingPolicy.CamelCase));
});
如果我尝试更改为Newtonsoft.Json.JsonSerializerSettings
类似下面使用的等效项,我不会得到相同的行为。相反,它看起来像使用默认System.Text.Json
配置。
builder.Services.Configure<JsonSerializerSettings>(options =>
{
options.ReferenceLoopHandling = ReferenceLoopHandling.Ignore;
options.Converters.Add(
new StringEnumConverter
{
NamingStrategy = new Newtonsoft.Json.Serialization.CamelCaseNamingStrategy()
});
});
在net5.0
我知道我可以使用这个
services.AddControllers().AddNewtonsoftJson((options) => //options); // OR
services.AddMvc().AddNewtonsoftJson((options) => //options);
但是,如果我在我的net6.0
项目中像上面那样使用它,那么我不再使用 MinimalApi 了吗?