使用包 Swashbuckle.AspNetCodre.Annoatations 后,Swagger UI 的响应正文显示字符串而不是 json 对象

问题描述 投票:0回答:1

响应正文变为字符串: “{“id”:“96dad743-138e-4b70-8316-5ced38ba56fe”,“名称”:“测试”,“hexColor”:“121213”,“isActive”:true,“planInstanceId”:“a1656f48-beb5-439a -944e-24ce93679d33"}"

我们希望它显示为: { “id”:“3fa85f64-5717-4562-b3fc-2c963f66afa6”, “名称”:“字符串”, "hexColor": "字符串", “isActive”:正确, “planInstanceId”:“3fa85f64-5717-4562-b3fc-2c963f66afa6” }

如何在 c# 中的 startUp 或 program.cs 的 Main 中进行设置,以便它显示对象而不是字符串,这是我们设置的一些设置:

builder.Services.AddJsonOptions(options =>
                {
                    options.JsonSerializerOptions.Converters.Add(new JsonStringEnumConverter());
                    options.JsonSerializerOptions.DictionaryKeyPolicy = JsonNamingPolicy.CamelCase;
                    options.JsonSerializerOptions.PropertyNamingPolicy = JsonNamingPolicy.CamelCase;
                    options.JsonSerializerOptions.ReferenceHandler = ReferenceHandler.IgnoreCycles;
                    
                });
builder.Services.AddSwaggerGen(options =>options.EnableAnnotations();});

app.UseSwagger();
app.UseSwaggerUI();

请给我提示,我应该在哪里设置,以便它显示 json 对象而不是字符串。 谢谢

我用谷歌搜索并没有找到正确的答案。当我从项目中删除包 Swashbuckle.AspNetCodre.Annoatations 时,一切都很好

swagger-ui
1个回答
0
投票

幼稚的错误,应该是 api 控制器中的“return OK(response)”而不是“Ok(response)”。

© www.soinside.com 2019 - 2024. All rights reserved.