FastJson注解使用

@JsonField使用

序列化和反序列化使用

序列化serializerUsing

@JsonField(serializeUsing = YYYYMMDDTranFerIntegerSerializer.class)
private Integer createTime;

类YYYYMMDDTranFerIntegerSeriazer需要实现接口

public class YYYYMMDDTranFerIntegerSerializer implements ObjectSerializer {
    @Override
    public void write(JSONSerializer serializer, Object object, Object fileName, Type fileType, int features) throws IOException {
        //转为Integer类型
        Integer integer = (Integer) object;
        //把Integer类型转为String
        String value = String.valueOf(integer);
        serializer.write(formatDay(value));
    }

    /**
     * 格式化指定数据
     * @param value
     * @return
     */
    private String formatDay(String value) {
        return value.substring(0, 4) + "-" + value.substring(4, 6) + "-" + value.substring(6);
    }
}

单元测试

 @Test
    public void testSerizalizer(){
        Student student = new Student();
        student.setCreateTime(20201113);
        System.out.println(JSONObject.toJSONString(student));
    }

输出结果(按照指定格式进行序列化了)
{“createTime”:“2020-11-13”}


对象的反序列化

YYYYMMddTransferIntegerDeserializer
 @JSONField(serializeUsing = YYYYMMDDTranFerIntegerSerializer.class,
    deserializeUsing = YYYYMMddTransferIntegerDeserializer.class)
    private Integer nFillDate;

实现接口

public class YYYYMMddTransferIntegerDeserializer implements ObjectDeserializer {
    @Override
    public Integer deserialze(DefaultJSONParser parser, Type type, Object fileName) {
        String object = parser.parseObject(String.class);
        //反序列化
        return deserialize(object);
    }

    private Integer deserialize(String result) {
        String str = result.replace("-", "");
        //把字符串转为Integer
        return NumberUtils.toInt(str);
    }

    @Override
    public int getFastMatchToken() {
        return 0;
    }
}

单元测试

 @Test
    public void testDescSerizalizer(){
        Student student = new Student();
        student.setCreateTime(20201113);
        String result = JSONObject.toJSONString(student);
        System.out.println("序列化之后的json类型格式--->"+result);
        //反序列化
        Student object = JSONObject.parseObject(result, Student.class);
        System.out.println("反序列化之后-->"+object.getCreateTime());
    }

测试结果输出

序列化之后的json类型格式—>{“createTime”:“2020-11-13”}
反序列化之后–>20201113

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值