我有一个使用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 了吗?
services.AddControllers().AddNewtonsoftJson(..)
仍然可以工作?也就是说,我们是否可以将控制器类型用作逃生口,以使用 Newtonsoft Json 作为替代方法,而不是向类型添加方法或使用包装器? - GrumpyRodriguez