我对.NET还是很陌生,所以这可能很明显,但是我已经苦苦挣扎了两个小时,这实在令人沮丧。
我正在尝试创建一个简单的GET请求,该请求读取一个JSON文件并返回它,就像这样:
// GET: api/test
[HttpGet]
public string Get()
{
using (StreamReader reader = new StreamReader("data/test.json", System.Text.Encoding.UTF8))
{
string json = reader.ReadToEnd();
return json;
}
}
test.json
文件如下所示:
{
"foo": "bar"
}
然后curl http://\[::\]:50001/api/test
返回:
"{\n \"foo\": \"bar\"\n}"
为什么C#返回带有转义字符和引号的字符串?
应如何编写此代码以正确格式化JSON响应?
任何帮助表示感谢,谢谢
答案 0 :(得分:3)
您尝试过吗?
Return "raw" json in ASP.NET Core 2.0 Web Api
public IActionResult Get()
{
using (StreamReader reader = new StreamReader("data/test.json", System.Text.Encoding.UTF8))
{
string json = reader.ReadToEnd();
return Content(json, "application/json");
}
}
编辑:
正如柯克·拉金(Kirk Larkin)所说,您也可以这样做:
public IActionResult Get()
{
// File(string virtualPath, string contentType)
// data/test.json needs to be in the wwwroot folder
return File("data/test.json", "application/json");
}