[英]Issue retrieving JSON response for ASP.NET Core REST API
我参考了以下链接并尝试创建 POC 应用程序:
[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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.