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

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);
    }
}
  • 15
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值