【发布时间】:2021-02-05 19:48:49
【问题描述】:
在 .netcore 3.1 中,我有返回流的 Web API 端点。 我用 Json 字符串填充流。我可以在浏览器上显示缩进文本吗
在 Starup.cs 和我的配置服务方法中:
services.AddControllers()
.AddNewtonsoftJson(options =>
options.SerializerSettings.Formatting = Formatting.Indented);
在控制器中:
[HttpGet]
public Stream Get()
{
// Receiving a string and not an object.
// the shape of the object is unknown to me
string test = "{ \"mydata\":[{ \"data\":[{ \"x\":1,\"y\":0}],\"frq]\":12}],\"success\":true,\"error_message\":\"\"}";
string pretty = JsonConvert.SerializeObject(test,Formatting.Indented);
return new MemoryStream(System.Text.Encoding.UTF8.GetBytes(test));
}
我使用 Visual Studio 调试器、JSON 查看器而不是文本检查了“漂亮”变量,我注意到放置的是 \" 而不是 \r\n
我正在使用 Newtonsoft.Json
我安装了 Microsoft.AspNetCore.Mvc.NewtonsoftJson v3.1.9
【问题讨论】:
-
在客户端做格式。格式化会消耗额外的数据,并且通常不需要计算机消耗。仅当您打算向最终用户显示格式时才应用格式。
-
@Alejandro 我的 Helperclass 方法正在将流返回到我的控制器,我该如何格式化这个流。我应该更改我的 herlper 方法以返回 json 吗?
-
能把序列化对象字符串的内容贴出来吗?
-
@Alejandro 更新了问题
-
@Brain Rogers。这是一个证明“漂亮”没有被格式化的测试
标签: c# asp.net-web-api json.net .net-core-3.1