当前位置: 首页 > 工具软件 > JsonSerialize > 使用案例 >

@JsonSerialize(using = ToStringSerializer.class)和@JsonSerialize注解的使用方法

颛孙镜
2023-12-01

java中long数据能表示的范围比js中number大,在跟前端交互时,这样也就意味着部分数值在js中存不下(变成不准确的值)。
解决办法可以这样:
使用fastjson的ToStringSerializer注解,让系统序列化时,保留相关精度。

/**
     * 记录属性的主键
     */

    @JsonSerialize(using = ToStringSerializer.class)
    private Long id;

@JsonSerialize注解的使用方法

关于这个注解的方法,可以自己定义class,作为using的值来使用。

/** 订单创建时间 */
    @JsonSerialize(using = DateToLongSerializer.class)
    private Date createTime;

这个的意义就是当转成json时,把时间转成秒的格式。

public class DateToLongSerializer extends JsonSerializer<Date> {
    @Override
    public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {
        jsonGenerator.writeNumber(date.getTime() / 1000);
    }
}
 类似资料: