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")]
返回纯文本可以提供“原始”内容,但它也会将响应的内容类型设置为 PLAIN 而不是 JSON。我们在控制器上使用 [Produces("application/json")]
。如何返回我拥有的 JSON 作为正常的 JSON 内容类型而不进行转义?
注意:JSON 字符串的获取方式无关紧要,它可以来自第三方服务,或者存在一些特殊的序列化需求,因此我们想使用自定义序列化而不是使用默认的 JSON.NET 序列化程序。