网页 API returns 转义 JSON

Web API returns escaped JSON

我在 .NET core 2.0 web API 项目中有一个 POST 方法需要 return JSON(使用 newtonsoft)。我在方法末尾有以下代码:

ObjectResult objRes = new ObjectResult(JsonConvert.SerializeObject(result, settings));
objRes.ContentTypes.Add(new MediaTypeHeaderValue("application/json"));
return objRes

当我使用 Postman 对此进行测试时,我得到如下结果:

"{\"name\":\"test\",\"value\":\"test\"}"

如你所见,JSON 仍然在 postman 中进行了转义。当我在 .NET core 1.0 项目中测试完全相同的代码时,我在 Postman 中得到以下信息:

{
  "name": "test",
  "value": "test"
}

如何在我的 .NET Core 2.0 项目中获得相同的结果? 我当时认为这可能是由于 Newtonsoft 造成的,但是当我将反序列化调试为字符串时,调试器在 .NET Core 1.0 和 2.0 项目中显示完全相同的(转义)值。

您可以只 return 在控制器中生成结果,它会被框架序列化。

[HttpPost]
public object Post()
{
    var result = new MyObject { Name = "test", Value = "test" };
    return result;
}

或者你可以这样做:

return new OkObjectResult(result);

或者如果您继承自 Controller:

return Ok(result);

我认为您不必在发送对象之前对其进行序列化。在 .NET Core 中,它将默认为您序列化。