【发布时间】:2021-10-27 22:35:06
【问题描述】:
我有一个用 C# 编写的 REST API。方法 DoQuery 向数据库发送查询,并获取 json 作为响应
public async Task<QueryResponseDto> DoQuery(string request)
{
return await _dbConnection.QuerySingleAsync<QueryResponseDto>("select web.json_request('" + request + "') as response;",commandTimeout:600);
}
...
[HttpPost]
[Route("DoQuery")]
public async Task<string> DoQuery([FromBody] object body)
{
var r = await _dataService.DoQuery(JsonSerializer.Serialize(body));
return r.response;
}
当我在数据库中运行查询时,我会得到这样的正确 json 答案
[
{
"contractor":{
"ek2id":"91707d21-50f3-4aa4-8209-e80b963da99d",
"externalids":[
{
"externalsource":"SBL",
"externalid":"1-4OB8C75"
}
]
}
}
]
但是当我从 PostMan 运行方法 DoQuery 时,我得到了这样的转义响应
"[{\"contractor\":{\"ek2id\":\"91707d21-50f3-4aa4-8209-e80b963da99d\",\"externalids\":[{\"externalsource\":\"SBL\",\"externalid\":\"1-4OB8C75\"}]}}]"
如何从 REST API 获得正常的非转义响应?
【问题讨论】:
-
您需要指定编码选项。请看这里:docs.microsoft.com/en-us/dotnet/standard/serialization/…