JSON工具篇

在Java开发中,使用JSON进行数据传递时,Jackson相比Gson在对象转换上显得更为灵活。例如,Jackson能方便地处理同名但类型不同的属性,而Gson在这种情况下可能会报错。此外,当属性值为null时,Jackson会将空值属性保留为null,而Gson会完全省略该属性。因此,在默认的简单使用场景下,Jackson更能满足实际开发需求。
摘要由CSDN通过智能技术生成

java开发中常用到JSON传递对象数据,并转换数据为对象。

那么哪种JSON工具更方便我们操作?

gson

Jackson

用下来比较推荐Jackson。这个gson操作比较麻烦:

对比一:

class EventInfo {

 private Date startTime;

 private Date endTime;

 private long start;

 private long end;

}

我想用startTime和endTime一个Date类型的数据,然后,返回的时候需要同样的字段名称,但是,要是long的值。

Jackson:

class EventInfo {

 @JsonIgnore
 private Date startTime;
 @JsonIgnore
 private Date endTime;
 @JsonProperty(value = "startTime")
 private long start;
 @JsonProperty(value = "endTime")
 private long end;

}

这样,我就可以先用属性startTime接受数据,在转为long的start,在输出的时候,使用忽略标记标识startTime,再把start标记输出为名称是startTime的。就完成了不同类型输入输出,但是同名的问题

而gson这么做会报错

class EventInfo {

 @Expose(serialize=false)
 private Date startTime;
 @Expose(serialize=false)
 private Date endTime;
 @SerializedName(value = "startTime")
 private long start;
 @SerializedName(value = "endTime")
 private long end;

}

运行中,报错,这个startTime已存在

对比二:空值属性

这个EventInfo对象,如果属性startTime的值是null,那么使用gson的toJsonStr()方法后,这个startTime属性都没有

使用Jackson,则会是"startTime":null

以上是一点点使用感受,没有深入的去了解内部提供的方法。我想说的是,使用默认最简单的实例方法,来对对象进行转换工作时,Jackson更贴合实际开发需求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值