2013-03-15 82 views
1

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

3.14159265359 => 3.14 

我想通了,唯一的办法就是一个DateFormatHandling使用JsonSerializerSettings。但没有花车。

+4

为什么不在序列化之前将数字四舍五入? – 2013-03-15 11:08:26

+0

正如斯特凡诺所说的,在序列化前使用'Math.Round(..)'进行数字舍入 – 2013-03-15 11:14:55

+0

我不总是舍入的原因是这些值在服务器端以更高的性能计算,而客户端只需要更低的值精度,因为这些值只是插值的一些标记。所以基本的想法就是减少发送的流量。 – 2013-03-15 11:46:58

回答

2

是的,你可以,你需要编写自己的自定义类型转换器。看到这里自定义转换器的例子:

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

你只需要适应它圆了当你写你的浮点值。

+0

当目标是舍入一些数字时,这将是一大堆工作。 – 2013-03-15 11:12:20

+2

@JordyLangen哦,我不在那里和你争论。但这是一个解决方案。 – Lloyd 2013-03-15 11:13:37