代码之家  ›  专栏  ›  技术社区  ›  luksfarris

调用System.IO.StreamReader时转义字符格式错误[重复]

  •  1
  • luksfarris  · 技术社区  · 6 年前

    我对.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}"
    

    为了使JSON响应的格式正确,应该如何编写这段代码?

    任何帮助谢谢

    1 回复  |  直到 6 年前
        1
  •  3
  •   Zysce myrtle303    6 年前

    你试过这个吗?

    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");
        }
    }
    

    正如柯克·拉金所说,你也可以这样做:

    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");
    }