AFAIK在ASP.NET Core Web Api中返回数据的标准方法是使用IActionResult并提供例如OkObject结果。这对对象很好用,但是如果我以某种方式获得了JSON字符串,而我只想将该JSON返回给调用者怎么办?
IActionResult
OkObject
例如
public IActionResult GetSomeJSON() { return Ok("{ \"name\":\"John\", \"age\":31, \"city\":\"New York\" }"); }
ASP.NET Core在这里所做的是,它接收JSON字符串,然后再次将其包装到JSON中(例如,它转义了JSON)
返回纯文本[Produces("text/plain")]确实可以通过提供“ RAW”内容来工作,但是它还将响应的内容类型设置为PLAIN而不是JSON。我们[Produces("application/json")]在控制器上使用。
[Produces("text/plain")]
[Produces("application/json")]
如何在不转义的情况下以普通的JSON内容类型返回JSON?
注意:JSON字符串的获取方式无关紧要,它可以来自第三方服务,也可以有一些特殊的序列化需求,因此我们希望进行自定义序列化,而不是使用默认的JSON.NET序列化器。
当然,在发布问题几分钟后,我偶然发现了一个解决方案:)
只需返回Content内容类型application/json…
Content
application/json
return Content("{ \"name\":\"John\", \"age\":31, \"city\":\"New York\" }", "application/json");