【问题标题】:How to convert String response (Text) to JSON response in .net core如何在 .net 核心中将字符串响应(文本)转换为 JSON 响应
【发布时间】:2022-02-19 08:11:30
【问题描述】:

我需要将字符串响应转换为 Json 响应。但是我必须使用不同的方法来解决我的问题,但我找不到任何好的解决方案。

if (response.IsSuccessStatusCode)
{
    string successResponse = "Order Created Successfully with InterfaceRecordId : " + order.WMWDATA.Receipts.Receipt.InterfaceRecordId + " & ReceiptId : " +
      order.WMWDATA.Receipts.Receipt.ReceiptId;
    _logger.LogInformation(successResponse);
    return StatusCode((int)response.StatusCode, successResponse);
}
_logger.LogError(jsonResponse);
return StatusCode((int)response.StatusCode, jsonResponse);

我只需将此successRespose 作为 JSON 响应发送。你能帮我解决这个问题吗?

【问题讨论】:

  • 顺便说一句,字符串已经是有效的 JSON 对象,那么定义 jsonReponse 字符串变量有什么错误?
  • @OneCricketeer 不,我已经签入了邮递员。它正在发送文本格式的响应。那么你有什么想法吗。
  • @OneCricketeer,它没有发送任何错误,但响应以文本形式出现。所以我需要在邮递员中获取json格式
  • 1) 您需要返回 application/json 的标头 2) 如果您想要一个键值对对象,您可能想尝试返回一个 Dictionary 对象而不仅仅是一个字符串
  • 您可能想在stackoverflow.com/questions/42360139/…阅读解决方案

标签: c# .net asp.net-mvc asp.net-core .net-core


【解决方案1】:

请阅读Format response data in ASP.NET Core Web API。有多种可能性,具体取决于您的具体要求。

最简单的选择是将[Produces] 属性添加到控制器操作,指定从aciton 返回的类型:

[Produces("application/json")]
public IActionResult YourAction(int id) { ... }

即使操作的返回类型是string,上述操作也会返回application/json


但是,您似乎在字符串中返回了两个值(InterfaceRecordIdReceiptId)。您可以使用内置方法(如Ok()BadRequest()Created()NotFound() 等)将对象转换为 JSON 并返回特定的状态码。

我建议返回一个包含这两个值的对象,并使用方便的返回方法(Created()CreatedAtAction())。以下返回一个匿名对象和状态码 201:

var successResponse = new 
{ 
    InterfaceRecordId = order.WMWDATA.Receipts.Receipt.InterfaceRecordId,
    ReceiptId = order.WMWDATA.Receipts.Receipt.ReceiptId
}

return CreatedAtAction(nameof(YourAction), successResponse); 

CreatedAtAction(和Created)便捷方法返回 201(已创建)HTTP 代码 - 因此客户端将能够从状态代码中推断出这一点。而且由于它返回一个对象(而不是字符串),返回类型默认为application/json,因此不需要[Produces] 属性。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-10-14
    • 2017-01-17
    • 2012-09-03
    • 1970-01-01
    • 1970-01-01
    • 2020-06-20
    • 2016-07-30
    相关资源
    最近更新 更多