对象序列化为JSON的时候使用策略修改序列化的结果

来源:互联网 发布:如何申请淘宝店铺号 编辑:程序博客网 时间:2024/06/06 20:50

场景:假设有一个需要序列化的对象中包含一个日期对象,这是如果直接将该对象转化为JSON,日期的格式就不可控,可以使用如下的方式引入自己的策略来控制属性的序列化过程

1.编写对象的属性转化策略

public class DateTimeSerializer extends JsonSerializer<Date> {    @Override    public void serialize(Date date, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException {        SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");        jsonGenerator.writeString(sdf.format(date));    }}
2.编写需要序列化为JSON对象的测试Bean

public class FormatModel {    private double money;    @JsonSerialize(using = DateTimeSerializer.class)    private Date date;    public double getMoney() {        return money;    }    public void setMoney(double money) {        this.money = money;    }    public Date getDate() {        return date;    }    public void setDate(Date date) {        this.date = date;    }}
3.测试 在家对象序列化为JSON对象的时候就会被序列化为指定的格式

@RequestMapping(value = "h2")    public @ResponseBody    Object testHeaderContext() {        FormatModel o=new FormatModel();        o.setDate(new Date());        o.setMoney(12.12345678);        return o;    }




原创粉丝点击