JSONObject可以使用java保存大格式的Double value吗?



问候,

我有包含付款信息的JSONObject,今天我们的客户要求提供格式为 (1234567890.12( 的 10 位数字,我有参数total_amount,当我设置此参数值 {"total_amount":123456789.23} 时,它显示在服务器中,如 {"total_amount":1.2345678923E8} ,无论如何我可以让 JSONObject 将其保存为123456789.23

你可以有一个反序列化器并使用一个更快的xml(com.fasterxml.jackson.databind.annotation.JsonSerialize(注释

反序列化器类:

class DecimalJsonSerializer extends JsonSerializer<Double> {
@Override
public void serialize(Double value, JsonGenerator jsonGenerator, SerializerProvider provider)
throws IOException {
jsonGenerator.writeNumber(String.format("%.1f", value));
}
}

字段上的注释应如下所示:

@JsonSerialize(using = DecimalJsonSerializer.class)
private Double total_amount;

最新更新