分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

fastjson使用-- @JSONField使用(转)

发布时间:2023-09-06 02:09责任编辑:赖小花关键词:jsjson

@JSONField可以配置到字段和方法上,那不同的配置有什么不同呢?下面我们就来看看具体配置到不同的方法上。

我们在创建实体类的时候,都要求属性必须创建get和set方法,否则fastjson将不会进行识别,下面我们看看把@JSONField配置到具体的get和set方法上

/** * @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;}

具体的代码,就是上面的,挺简单的。下面来看看结果:

{"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为endDateUo2 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,所以没法识别。

根据上面我们可以总结出一个结论:

1.序列化(JavaBean --> json)时配置到对应字段的get()方法上

2.反序列化(json --> JavaBean)时配置到对应字段的set()方法上

fastjson使用-- @JSONField使用(转)

原文地址:https://www.cnblogs.com/heqiyoujing/p/9459702.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved