gson使用注意

Jackson进行JSON解析和序列化

Jackson提供了一系列注解,方便对JSON序列化和反序列化进行控制,下面介绍一些常用的注解。

@JsonIgnore 此注解用于属性上,作用是进行JSON操作时忽略该属性。

@JsonFormat 此注解用于属性上,作用是把Date类型直接转化为想要的格式,如@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")。

@JsonProperty 此注解用于属性上,作用是把该属性的名称序列化为另外一个名称,如把trueName属性序列化为name,@JsonProperty("name")。


04-27 00:46:51.160 17190-20868/link.ebbinghaus.planning W/System.err: Caused by: java.text.ParseException: Failed to parse date ["1461689198000']: Invalid time zone indicator '9' (at offset 0)





json解析之Gson使用注意:
在Java中处理JSON格式的数据时,Google Gson是个不错的选择,用起来挺方便的,也有一定灵活性。
1、Date格式问题:
异常:Invalid time zone indicator '0'
原因:在使用Gson解析json数据的时候,如果json中含有Date格式的数据,json会用默认的格式解析,如果格式不一样则会导致解析出错。
解决办法:在创建GsonBuilder过程中调用GsonBuilder.setDateFormat("yyyy-MM-dd HH:mm:ss")指定一个固定的格式即可。
2、序列化忽略指定属性
给字段加上transient修饰符(简单推荐)

其他方法:(不推荐,忽略的只是个别字段,大部分字段需要加注解)
Gson gson = new GsonBuilder()  
            .excludeFieldsWithoutExposeAnnotation()
            .create();  
使用@Expose注解,没有被@Expose标注的字段会被排除

还有好多方法。。。

3、排除null字段
null字段,默认就不会序列化
要想序列化null字段,需要显示的进行设置
Gson gson = new GsonBuilder().serializeNulls().create();


另外如果使用Jackson进行JSON解析和序列化,Jackson也提供了一系列注解,方便对JSON序列化和反序列化进行控制
@JsonIgnore 此注解用于属性上,作用是进行JSON操作时忽略该属性。

@JsonFormat 此注解用于属性上,作用是把Date类型直接转化为想要的格式,如@JsonFormat(pattern = "yyyy-MM-dd HH-mm-ss")。

@JsonProperty 此注解用于属性上,作用是把该属性的名称序列化为另外一个名称,如把trueName属性序列化为name,@JsonProperty("name")。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值