c# - ASP.NET Web API 响应在浏览器和 Postman 中显示转义字符
问题描述
我正在学习如何使用 ASP.NET 创建 Web API,但是在让我的 JSON 响应在浏览器中看起来不错时遇到了问题。
将 JSON 字符串打印到调试控制台时,它看起来很好:
{
"a": 2,
"b": "hello"
}
但是当在浏览器中或通过 Postman(甚至在“漂亮视图”中)查看它时,我得到了这个:
"{\r\n \"a\": 2,\r\n \"b\": \"hello\"\r\n}"
我可以让浏览器很好地显示结果吗?
这是我的测试模型:
namespace Test.REST.Models
{
public class Test
{
public int a;
public string b;
public Test(int a, string b)
{
this.a = a;
this.b = b;
}
}
}
这是我的测试控制器:
namespace Test.REST.Controllers
{
public class TestController : ApiController
{
public string Get()
{
Test.REST.Models.Test test = new Test.REST.Models.Test(2, "hello");
string json = JsonConvert.SerializeObject(test, Formatting.Indented);
System.Diagnostics.Debug.WriteLine(json);
return json;
}
}
}
解决方案
你有一个错误,修复类
public class Test
{
public int a { get; set; }
public string b { get; set; }
public Test(int a, string b)
{
this.a = a;
this.b = b;
}
}
修复后,我使用 VS 2019 和 Postman 测试了您的代码。一切看起来都很正常。
如果我使用
string json = JsonConvert.SerializeObject(test, Newtonsoft.Json.Formatting.Indented);
输出
{
"a": 2,
"b": "hello"
}
如果我使用 Chrome 浏览器,外观相同
删除 Newtonsoft.Json.Formatting.Indented 后
string json = JsonConvert.SerializeObject(test);
输出
{"a":2,"b":"hello"}
推荐阅读
- python - 如何在 Python 3.9 上将 pyc 反编译为 py?
- javascript - 如何从外部库中捕获错误并将其存储在字符串中
- python - Numpy Arrays :虽然 A = B[:] 创建了一个带有 id(A) != id(B) 的 numpy 数组对象 A 。它仍然会更新,不像列表
- c - C计算多维函数的梯度。(偏导数)
- reactjs - 在 ReactJS 中获取后无法更新状态变量
- npm - NPM 启动抛出 errno -4058
- reactjs - 测试日期 Date.now() 在减速器初始状态我的测试用例失败
- python - 使用 selenium 更改表中的值
- python-3.x - 如何使用 Django 在本地机器上创建目录/文件?
- python - 字典列表:将具有相同值的数字相加