Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/261.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Return";生的;ASP.NET Core 2.0 Web Api中的json_C#_Json_Asp.net Mvc_Asp.net Core Mvc - Fatal编程技术网

C# Return";生的;ASP.NET Core 2.0 Web Api中的json

C# Return";生的;ASP.NET Core 2.0 Web Api中的json,c#,json,asp.net-mvc,asp.net-core-mvc,C#,Json,Asp.net Mvc,Asp.net Core Mvc,在ASP.NET核心Web Api中返回数据的标准方法是使用IActionResult并提供一个OkObject结果。这对对象很好,但是如果我以某种方式获得了一个JSON字符串,并且我只想将该JSON返回给调用方,该怎么办 e、 g ASP.NET Core在这里所做的是,它获取JSON字符串,并将其再次包装为JSON(例如,它转义JSON) 使用[products(“text/plain”)]返回纯文本通过提供“原始”内容来工作,但它也将响应的内容类型设置为plain而不是JSON。我们在控制

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

e、 g

ASP.NET Core在这里所做的是,它获取JSON字符串,并将其再次包装为JSON(例如,它转义JSON)

使用
[products(“text/plain”)]
返回纯文本通过提供“原始”内容来工作,但它也将响应的内容类型设置为plain而不是JSON。我们在控制器上使用
[products(“application/json”)]

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


注意:无论JSON字符串是如何获得的,它可能来自第三方服务,或者有一些特殊的序列化需求,因此我们希望进行自定义序列化,而不是使用默认的JSON.NET序列化程序。

在您的操作中,将
Ok()
替换为
Content()
方法,它允许您设置内容(原始内容)、内容类型和回复的状态代码:

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

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

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

这对我有效,而
Json()
没有:

返回新的JsonResult(json);

json作为body或param发送?@NevilleNazerane json作为返回值(body)发送,因此不涉及参数。这很好。我有一种感觉,ASP.NET Core 2和ASP.NET Core 1之间的情况发生了变化。这里又是一天。希望看到DNCore 2.1的有效解决方案@MC9000您需要ASPNetCore 2.1。NetCore2.1还不够<代码>内容是Microsoft.AspNetCore.Mvc.ControllerBase的一个函数最好返回Json(您的Json在这里),因为这非常有用-谢谢!(如果我按照上面的注释返回Json,那么它将返回我的客户端无法使用的分块内容。)您使用application/Json规范返回内容的解决方案解决了我的问题。对于DotNetCore 2.1,您是如何做到这一点的?“内容”方法无法识别-因此我相信他们已经改变了一些东西。@MC9000您需要ASPNetCore 2.1。NetCore2.1还不够<代码>内容< /代码>是<代码>微软.ASPNETCyr.McC.MealErraseBase>代码>您可以考虑使用而不是<代码>“应用程序/JSON”< /代码>(对于.NETCype 2.1 +)。
return Content("{ \"name\":\"John\", \"age\":31, \"city\":\"New York\" }", "application/json");