检索ASP.NET Core REST API的JSON响应时出现问题



我引用了下面的链接,并试图创建一个POC应用程序:

https://techcommunity.microsoft.com/t5/azure-sql-blog/10k-request-per-second-rest-api-with-azure-sql-dapper-and-json/ba-p/1189675

[HttpGet("{a}/{b}", Name = "TestMethod")]
[ProducesResponseType(201)]
[ProducesResponseType(400)]
[ProducesResponseType(500)]
public async Task<JsonElement> TestMethodAsync(long a, long b)
{
return await _repo.GetDataAsync(a);
}
public async Task<JsonElement> GetDataAsync(long a)
{
JsonDocument result = null;
const string sql = @"SELECT HC.LeadReviewerEmailAddress, HCRT.ReviewerEmailAddress,
ER.PartnerEmailAddress, ER.GroupAuditPartnerEmailAddress, ETM.EmailAddress
FROM [EM].[HealthCheck] HC
JOIN [EM].[EngagementReview] ER ON ER.EngagementReviewId = HC.EngagementReviewId
LEFT JOIN [EM].[HealthCheckReviewTeam] HCRT ON HC.HealthCheckId = HCRT.HealthCheckId
LEFT JOIN  [EM].[EngagementTeamMember] ETM ON ETM.EngagementReviewId = HC.EngagementReviewId
WHERE HC.HealthCheckId=@a FOR JSON PATH, WITHOUT_ARRAY_WRAPPER";
var param = new{a}; 
using (var conn = await _dapperService.CreateConnection())
{
var queryResponse = await conn.QueryAsync<string>(sql, param);
var allTeamMembersForHC = queryResponse.FirstOrDefault();
if (!string.IsNullOrWhiteSpace(allTeamMembersForHC))
{
result = JsonDocument.Parse(allTeamMembersForHC);
}
}
if (result == null)
result = JsonDocument.Parse("[]");

return result.RootElement;
}

在验证上述方法时,我得到了以下响应,而不是JSON字符串:

{
"valueKind": 2
}

有人能帮我解决这个问题吗?

使用FOR JSON时,结果集只有一列和一行,因此必须使用方法ExecuteScalarAsync而不是QueryAsync

最新更新