**
- * @Title: getDate
- * @Description: 配置序列化的时候,日期序列化为startDate
- * @return Date
- */
- @JSONField(name = "startDate")
- public Date getDate() {
- return date;
- }
- /**
- * @Title: setDate
- * @Description: 配置反序列化的时候,以endDate去匹配
- * @param date
- * @return void
- */
- @JSONField(name = "endDate")
- public void setDate(Date date) {
- this.date = date;
- }
- /**
- * @Title: getId
- * @Description: 配置序列化的时候,不序列化id
- * @return int
- */
- @JSONField(serialize = false)
- public int getId() {
- return id;
- }
- /**
- * @Title: setId
- * @Description: 配置反序列化的时候,不反序列化id
- * @return void
- */
- @JSONField(deserialize = false)
- public void setId(int id) {
- this.id = id;
- }
- // 序列化
- Uo2 u = new Uo2();
- u.setId(1);
- u.setName("LiLei");
- u.setAge(25);
- u.setDate(new Date());
- u.setSex("男");
- // @JSONField配置了,不序列化id,date序列化为startDate
- System.out.println(JSON.toJSONString(u));
- // 反序列化
- String jsonStr = "{"id":10,"age":25,"name":"LiLei","sex":"男","endDate":1451984687404}";
- // @JSONField配置了,不反序列化id,date的匹配name为endDate
- Uo2 uo = JSON.parseObject(jsonStr, Uo2.class);
- System.out.println(uo.toString());
具体的代码,就是上面的,挺简单的。下面来看看结果:
- {"age":25,"name":"LiLei","sex":"男","startDate":1451985134688}
- User [id=0, name=LiLei, age=25, sex=男, date=Tue Jan 05 17:04:47 CST 2016]
我们看到id既没有序列化也没有反序列化,date字段序列化的时候变为了startDate
我们再来看看下面的代码看看结果跟上面做个比较:
- // 反序列化
- String jsonStr = "{"id":10,"age":25,"name":"LiLei","sex":"男","startDate":1451984687404}";
- // @JSONField配置了,不反序列化id,date的匹配name为endDate
- Uo2 uo = JSON.parseObject(jsonStr, Uo2.class);
- System.out.println(uo.toString());
再来看看结果:
- User [id=0, name=LiLei, age=25, sex=男, date=null]
这个时候我们看到没有识别到date,因为我们在date字段的set方法上配置了@JSONField(name = "endDate")所以其在识别的时候,是通过endDate去识别key的,而我们的json数据里根本没有endDate这个key,所以没法识别。