【发布时间】:2018-01-19 08:12:55
【问题描述】:
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 字符串并不重要,它可能来自 3rd 方服务,或者有一些特殊的序列化需求,因此我们想要进行自定义序列化而不是使用默认 JSON .NET 序列化程序。
【问题讨论】:
-
json 作为正文或参数发送?
-
@NevilleNazerane JSON 作为返回值(正文)发送,因此不涉及任何参数。
标签: c# json asp.net-mvc asp.net-core-mvc