【发布时间】:2017-12-07 17:50:11
【问题描述】:
我无法弄清楚如何在 POJO 中将我的 double 序列化为 int。目前,我正在草率地在 setter 方法中进行转换。双精度值始终介于 0 和 1 之间。下面是我的 POJO 中的 getter 和 setter 方法:
@JsonProperty("costMargin")
public int getCostMargin() {
return costMargin;
}
@JsonProperty("costMargin")
public void setCostMargin(double costMargin) {
this.costMargin = (int)(Math.round(costMargin * 100));
}
谁能帮我弄清楚如何将这个 double 序列化为一个 int,而不在 setter 方法中进行转换?我正在尝试研究其他方法,例如创建一个序列化程序类,并在我的 Pojo 中包含一个注释。例如:@JsonSerialize(using = CustomDoubleSerializer.class)
【问题讨论】:
-
“将 double 序列化为 int”是什么意思?如果
double值对于int来说太大会怎样?您需要澄清您要完成的工作。从代码看来,您希望将财务值存储为缩放整数(即美分),在这种情况下,只要您了解对浮点数进行四舍五入可能会产生意外结果,您就可以正常工作。您最好不要在代码中的任何位置对财务数据使用浮点数,但您可能没有该选项。 -
很抱歉没有包含详细信息。双精度值始终介于 0 和 1 之间。除了设置和获取之外,我试图在我的 setter 或 getter 方法中不进行计算。
标签: java json serialization pojo