Java Jackson – JsonSerializer接口数据格式化时,实体数据类型转换,将boolean序列化为1/0而不是true / false,或1/0转化为boolean

我有REST资源接收

JSON对象,该对象是从用户ID到某个布尔值的映射,指示此用户是否有错误.

由于我期待大量用户,我想通过使用1/0而不是true / false来缩小此JSON的大小.

我试过并发现在脱盐过程中杰克逊会成功地将1/0转换为真/假,但是有没有办法告诉杰克逊(可能使用注释?)将这个布尔字段序列化为1/0而不是真/假?

这是一个Jackson JsonSerializer,它将布尔值序列化为1或0.

public class NumericBooleanSerializer extends JsonSerializer {undefined

@Override

public void serialize(Boolean b, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException {undefined

jsonGenerator.writeNumber(b ? 1 : 0);

}

}

然后注释布尔字段,如下所示:

@JsonSerialize(using = NumericBooleanSerializer.class)

private boolean fieldName;

或者在杰克逊模块中注册:

module.addSerializer(new NumericBooleanSerializer());

注意:只针对实体输出数据时有效,实体接收数据时是无效的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值