调用 System.IO.StreamReader 时使用转义字符格式错误

我对 .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 响应正确格式化?


任何帮助表示赞赏,谢谢


暮色呼如
浏览 461回答 1
1回答

慕的地8271018

你试过这个吗?在 ASP.NET Core 2.0 Web Api 中返回“原始”jsonpublic 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");}
打开App,查看更多内容
随时随地看视频慕课网APP