1、jackson :
将long 序列化成String,在entity属性加注解:
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
@JsonSerialize(using = ToStringSerializer.class)
private Long infoId;
double类型保留4为小数:
import com.fasterxml.jackson.core.JsonGenerator;
import com.fasterxml.jackson.databind.JsonSerializer;
import com.fasterxml.jackson.databind.SerializerProvider;
import java.io.IOException;
public class NumberSerializer extends JsonSerializer<Double> {
@Override
public void serialize(Double value, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
NumberFormat instance = NumberFormat.getInstance();
instance.setMaximumFractionDigits(4);
String format = instance.format(value);
jsonGenerator.writeString(format);
}
}
@JsonSerialize(using = NumberSerializer.class)
private Double value;
2、fastjson:
import java.io.IOException;
import java.lang.reflect.Type;
import com.alibaba.fastjson.serializer.JSONSerializer;
import com.alibaba.fastjson.serializer.ObjectSerializer;
import com.alibaba.fastjson.serializer.SerializeWriter;
public class LongToStringSerializer implements ObjectSerializer {
public static final LongToStringSerializer instance = new LongToStringSerializer();
@Override
public void write(JSONSerializer serializer, Object object, Object fieldName, Type fieldType, int features)
throws IOException {
SerializeWriter out = serializer.out;
if (object == null) {
out.writeNull();
return;
}
String strVal = object.toString();
out.writeString(strVal);
}
}
使用:
@JSONField(serializeUsing = LongToStringSerializer.class)
private long id;