一尘不染

在ASP.NET Core 2.0 Web Api中返回“原始” json

json

AFAIK在ASP.NET Core Web
Api中返回数据的标准方法是使用IActionResult并提供例如OkObject结果。这对对象很好用,但是如果我以某种方式获得了JSON字符串,而我只想将该JSON返回给调用者怎么办?

例如

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")]在控制器上使用。

如何在不转义的情况下以普通的JSON内容类型返回JSON?

注意:JSON字符串的获取方式无关紧要,它可以来自第三方服务,也可以有一些特殊的序列化需求,因此我们希望进行自定义序列化,而不是使用默认的JSON.NET序列化器。


阅读 748

收藏
2020-07-27

共1个答案

一尘不染

当然,在发布问题几分钟后,我偶然发现了一个解决方案:)

只需返回Content内容类型application/json

return Content("{ \"name\":\"John\", \"age\":31, \"city\":\"New York\" }", "application/json");
2020-07-27