Mic*_*elZ 31 c# asp.net-mvc json asp.net-core-mvc
AFAIK在ASP.NET Core Web Api中返回数据的标准方法是使用IActionResult并提供例如OkObject结果.这适用于对象,但如果我以某种方式获得了JSON字符串,我只想将该JSON返回给调用者呢?
例如
public IActionResult GetSomeJSON()
{
return Ok("{ \"name\":\"John\", \"age\":31, \"city\":\"New York\" }");
}
Run Code Online (Sandbox Code Playgroud)
ASP.NET Core在这里做的是,它接受JSON字符串,并再次将其包装到JSON中(例如它转义为JSON)
返回纯文本[Produces("text/plain")]通过提供"RAW"内容确实有效,但它也将响应的内容类型设置为PLAIN而不是JSON.我们[Produces("application/json")]在控制器上使用.
如何在没有转义的情况下将JSON作为普通的JSON内容类型返回?
注意:获取JSON字符串无关紧要,它可能来自第三方服务,或者存在一些特殊的序列化需求,因此我们希望进行自定义序列化而不是使用默认的JSON.NET序列化程序.
Mic*_*elZ 55
当然在发布问题后几分钟我偶然发现了一个解决方案:)
只需返回Content内容类型application/json...
return Content("{ \"name\":\"John\", \"age\":31, \"city\":\"New York\" }", "application/json");
Run Code Online (Sandbox Code Playgroud)
Ara*_*edi 19
在您的操作中,Ok()使用Content()方法替换,该方法允许您设置响应的内容(原始内容),内容类型和状态代码:https://docs.microsoft.com/en-us/dotnet/api/microsoft. aspnetcore.mvc.contentresult?视图= aspnetcore-2.0
| 归档时间: |
|
| 查看次数: |
19251 次 |
| 最近记录: |