虽然我可以使用 C# 来替换 [\ 和 ],但我不知道为什么它们会出现。
我从 C# 应用程序中调用 Web API 服务
using (var client = new HttpClient())
{
client.BaseAddress = new Uri("http://localhost:11974/");
client.DefaultRequestHeaders.Accept.Clear();
HttpResponseMessage response = await client.GetAsync("/GetNTIDWithEmail/"+ responseModel.ReferredToNTID + "/");
if (response.IsSuccessStatusCode)
{
var x = await response.Content.ReadAsStringAsync();
}
}
x = "[\"SPRUCEK\"]"
为什么它有括号和反斜杠?
我调用的 Web Api 看起来像这样
[Route("GetNTIDWithEmail/{id}")]
public IHttpActionResult GetNtidfromEmail(string id)
{
var query = (from c in _db.rEmails
where c.Email.Contains(id)
select c.ALIAS_NAME);
return Ok(query);
}
我猜您正在调试器中查看它。 调试器正在转义引号,因此字符串实际上看起来像:
["SPRUCEK"]
这是有道理的。 您将返回一个
IEnumerable<string>
,它在 JSON 中将是一个数组。 您将返回一个结果,因此 JSON 看起来与您返回的内容相符。
从你的方法名称来看,我敢打赌你只想要一个结果。 如果是这种情况,请尝试:
var result = (from c in _db.rEmails
where c.Email.Contains(id)
select c.ALIAS_NAME)
.FirstOrDefault();
抱歉,如果我的回复太晚了,但也许它可以帮助其他人。
将客户端应用程序中的 ReadAsStringAsync 函数更改为 ReadFromJsonAsync
var x = await response.Content.ReadFromJsonAsync<string>();
请记住,您收到的是 JSON,而不是字符串。 JSON 中的字符串用引号引起来。