【问题标题】:Remove trailing spaces from Web API JSON从 Web API JSON 中删除尾随空格
【发布时间】:2013-10-23 13:26:53
【问题描述】:

我正在创建一个 Web API 应用程序,它封装了一些遗留系统,这些遗留系统具有使用 nchar 而不是 nvarchar 用于所有字符串列的数据库。

这显然给了我一个问题,即来自数据库的所有字符串都有大量空白,以将它们填充到最后的字段长度。

当我返回 JSON 时,我想确保尽可能地缩小 JSON 并修剪字符串。我不想做的是在代码中手动对我的所有字符串执行TrimEnd()

为了实现这一点,我想我可以在 WebAPI 用来输出对象的 JSON 序列化器中做到这一点。我试过在

中环顾四周
GlobalConfiguration.Configuration.Formatters.JsonFormatter

看看我是否能找到一种方法来做到这一点,但我正在努力寻找一个可行的选择。

以前有没有人尝试过这样做,他们是如何在不手动循环字段且不产生显着性能开销的情况下做到这一点的?

【问题讨论】:

标签: asp.net-mvc json asp.net-mvc-4 asp.net-web-api


【解决方案1】:

您应该尝试使用 Newtonsoft.Json 序列化程序。您可以通过将格式设置为 Formatting.None 来配置它以删除所有不必要的空格:

var jsonNetSettings = new JsonSerializerSettings
{
    Formatting = Formatting.None,
};

然后从 GlobalConfiguration.Configuration.Formatters 获取您的 jsonFormatter 对象并分配新设置:

jsonFormatter.SerializerSettings = jsonNetSettings;

【讨论】:

  • 来自请求正文的输入模型将绑定到控制器操作参数,因此此设置将如何应用。无论如何,我已经尝试过您提供的上述方法对我不起作用。它没有删除多余的空格
猜你喜欢
  • 2017-01-29
  • 2015-02-15
  • 2015-04-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-03
  • 2023-03-16
相关资源
最近更新 更多