首页 / 问答 / C#&.NET Core(.NET 5) Web API中如何将json字符串以JSON对象的格式返回给调用者/客户端呢?

C#&.NET Core(.NET 5) Web API中如何将json字符串以JSON对象的格式返回给调用者/客户端呢?

0

在C#进行.NET Core(.NET 5) Web API的应用程序编程开发时,正常情况下在控制器中我们可以return Ok()的方式返回IActionResult的响应,并且默认情况下返回的响应数据是json对象,响应数据类型会被标记为application/json

但在一些特定场景中,比如有一个例子,在控制器中,我从另一个服务(Elasticsearch)以接口的方式获得一些原始JSON,这里得到的JSON数据是字符串格式的,并且需要将它以JSON对象的方式从web API返回给调用者。

在这种情况下,也不能使用NewtonSoft对这个JSON字符串进行反序列化操作,因为JSON字符串的内容和属性都是不确定的。如果直接使用如下方式:

[HttpGet]
public IActionResult Order()
{
    var client = EsClient.Instance;
    var response = client.LowLevel.DoRequest(HttpMethod.GET, "test-index/_count");
    return Ok(response.Body);
}

调用者得到的是一个content-type: text/plain; charset=utf-8格式的字符串文本,并非一个JSON对象。

那么,在C#&ASP.NET Core(.NET 5) Web API中,有没有办法将json字符串以JSON对象的格式返回给调用者/客户端呢?

回复 [×]
提交评论
请输入评论内容

1 个回答

  • 0

    在ASP.NET Core(.NET 5)的应用程序中,可在控制器中返回Content对象,Content中可以设置响应的contentTypeapplication/json,示例如下:

    返回的JSON数据如下图:

    Rector的个人主页

    Rector

    2021-10-21 回答

    我来回答