Java解决对象转json中Long类型下的null被转换后变成默认值0

在Java中使用JSON转换时,遇到对象中的null值被自动转换为数字0的问题。本文介绍了解决方案,通过自定义JsonConfig并设置Long类型的默认值处理器,将null转换为null而非0。

Java解决对象转json中null被转换为默认值0

1.问题

刚进公司进行数据传输的时候,接收方就告诉我说传过去的null,都变成了0;
这个是为什么呢,在我的多地排除,发现是转换的时候出现了问题.
json方法在使用时.会自动把数据中long类型的null.转换成默认值0;

JsonUtils.object2Json(object)

2.解决方法

使用JSONObject.fromObject的时候其实有一个配置的参数JsonConfig。用JsonConfig注册一个新的配置传给JSONObject.fromObject。

//自定义Long在JsonUtils.object2Json装换的默认值
JsonConfig jsonConfig = new JsonConfig();
jsonConfig.registerDefaultValueProcessor(Long.class,new DefaultDefaultValueProcessor() {
      public Object getDefaultValue(Class type) {
      		    return null;
      }
});

上面就创建了一个json的新的配置参数,这里我把long类型的默认值改成了null.
如果你要改什么的默认值就套用上面的代码就是.

//将刚才定义的新配置参数放进方法中
JsonUtils.object2Json(object,jsonConfig )

问题虽然很简单,但是对于小白的我碰见了就自己记录一下.

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值