![](/img/trans.png)
[英]How to configure NewtonsoftJson with MinimalApi in .NET 6.0
[英]How to configure json Name Case policy while using MinimalApi
我正在嘗試從我的最小 API 獲取結果,這些 API 在我的 MVC Web 應用程序的端點中配置,我的 Get 操作配置如下:
endpoints.MapGet(
"HO-CFDZU4/api/Currency/Get",
[PermissionAuthorize(PermissionName.ReadCurrencyDictionary)]
async ([FromServicesAttribute] CurrencyService curency) =>
{
var result = await DataSourceLoader.LoadAsync(curency.Get(), new DataSourceLoadOptions());
return Results.Ok(result);
});
結果,我得到了屬性名稱更改為小寫的對象的響應,它不適合我。 我想在相同的情況下獲得完全相同的名稱,就像我返回表單操作一樣。
為了在 MVC 中獲得類似的效果,我使用了這段代碼:
services
.AddMvc()
.AddFluentValidation(x => x.RegisterValidatorsFromAssembly(AppDomain.CurrentDomain.GetAssemblies().Where(x => x.FullName.Contains("ApplicationCore")).Single()))
.AddMvcLocalization()
.AddMvcOptions(options =>{})
.AddRazorRuntimeCompilation()
.AddJsonOptions(options =>
{
options.JsonSerializerOptions.PropertyNamingPolicy = null;
options.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles;
});
在控制器中使用操作時為 Json 設置屬性命名策略,我不知道如何為 minimalApi 設置相同的策略。
我試過的是設置[JsonPropertyName(name)]
並且效果很好,但我們有很多類,我正在尋找更全局的解決方案。
我還嘗試像這樣全局配置 JsonOptions:
services.Configure<JsonOptions>(options =>
{
options.JsonSerializerOptions.PropertyNamingPolicy = null;
options.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles;
});
但它什么都不做
使用Microsoft.AspNetCore.Http.Json
命名空間( 文檔)中的JsonOptions
:
builder.Services.Configure<JsonOptions>(options =>
{
options.SerializerOptions.PropertyNamingPolicy = null;
options.SerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles;
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.