假设我有一个对象
private Double test;
// Need specific output in JSON via Jackson: test = 24.6000
当通过杰克逊(Jackson)输出到JSON时,我得到24.6
,但是我需要如示例中确切的4进制输出。杰克逊允许吗?
例如,对于日期,我们找到了一种强制MM/dd/yyyy:
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "MM/dd/yyyy")
Date myDate;
我们需要类似的十进制格式。
答案 0 :(得分:1)
一种实现方法是使用自定义json序列化程序并在@JsonSerialize
中指定。
@JsonSerialize(using = CustomDoubleSerializer.class)
public Double getAmount()
public class CustomDoubleSerializer extends JsonSerializer<Double> {
@Override
public void serialize(Double value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonGenerationException {
if (null == value) {
jgen.writeNull();
} else {
final String pattern = ".####";
final DecimalFormat myFormatter = new DecimalFormat(pattern);
final String output = myFormatter.format(value);
jgen.writeNumber(output);
}
}
}