我們?cè)谛蛄谢疨OJO時(shí),有時(shí)候需要將POJO中某些字段轉(zhuǎn)換成String輸出到Json中,如定義一個(gè)POJO:
@Data
public static class MyBean {
private BigDecimal a;
private Integer b;
private String c;
}
需要將BigDecimal轉(zhuǎn)換為Json中的String字符串,那么需要定義一個(gè)ValueFilter:
public class BigDecimalValueFilter implements ValueFilter {
@Override
public Object process(Object object, String name, Object value) {
if(value instanceof BigDecimal) {
return ((BigDecimal) value).stripTrailingZeros().toPlainString();
}
return value;
}
}
測(cè)試一下:
@Test
public void testFastJson() {
MyBean myBean = new MyBean();
myBean.setA(new BigDecimal("123.4500000"));
myBean.setB(1);
myBean.setC("123123");
// 將 JavaBean 轉(zhuǎn)換為字符串
String jsonString = JSON.toJSONString(myBean, new BigDecimalValueFilter());
System.out.println(jsonString);
}
結(jié)果如下:
{"a":"123.45","b":1,"c":"123123"}