【问题标题】:Custom Json.NET float formatting自定义 Json.NET 浮点格式
【发布时间】:2013-03-15 11:02:47
【问题描述】:

我使用Json.NET 进行对象序列化。我有很多浮点值,所以我的 Json 字符串非常大。我不需要高精度,所以我想知道您是否可以设置自定义浮点格式。例如四舍五入到小数点后两位。

3.14159265359 => 3.14

我唯一想到的是使用JsonSerializerSettings 的DateFormatHandling。但没有花车。

【问题讨论】:

  • 为什么不在序列化前四舍五入?
  • 正如 Stefano 所说,在序列化之前使用 Math.Round(..) 对数字进行四舍五入
  • 我不总是四舍五入的原因是这些值在服务器端以更高的性能计算,而客户端只需要较低的精度,因为这些值只是插值的一些标记。所以基本的想法就是减少发送的流量。

标签: c# json serialization formatting


【解决方案1】:

是的,您可以,您需要编写自己的自定义类型转换器。有关自定义转换器的示例,请参见此处:

How to implement custom JsonConverter in JSON.NET to deserialize a List of base class objects?

您只需要在写出浮点值时对其进行调整以进行四舍五入。

【讨论】:

  • 如果目标是对一些数字进行四舍五入,那将是一大堆工作。
  • @JordyLangen 哦,我不和你争论。但这是一个解决方案。
猜你喜欢
  • 2017-08-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 2020-01-08
  • 2013-01-10
  • 2013-09-09
  • 1970-01-01
相关资源
最近更新 更多