fastjson使用(五) -- @JSONField使用
来源:互联网 发布:皮皮跑胡子 软件您 编辑:程序博客网 时间:2024/05/19 20:20
前面的博客,在讲序列化和反序列化的时候,讲到了@JSONField,知道了@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;}
// 序列化Uo2 u = new Uo2();u.setId(1);u.setName("LiLei");u.setAge(25);u.setDate(new Date());u.setSex("男");// @JSONField配置了,不序列化id,date序列化为startDateSystem.out.println(JSON.toJSONString(u));// 反序列化String jsonStr = "{\"id\":10,\"age\":25,\"name\":\"LiLei\",\"sex\":\"男\",\"endDate\":1451984687404}";// @JSONField配置了,不反序列化id,date的匹配name为endDateUo2 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为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()方法上
0 0
- fastjson使用(五) -- @JSONField使用
- fastjson使用 -- @JSONField使用
- FastJson中@JSONField注解使用
- FastJson注解@JSONField的使用
- FastJson中@JSONField注解使用
- FastJson中@JSONField注解使用
- FastJson中@JSONField注解使用
- fastjson使用@JSONField、@JSONType、SerializeFilter定制序列化
- FastJson-JSONField
- 关于fastJSON的@JSONField
- fastjson之annotation.JSONField
- fastjson的@JSONField注解
- fastjson @JSONField自定义输出字段
- fastjson @JSONField自定义输出字段
- 使用fastJSON
- FastJson使用
- FastJSON使用
- fastJson使用
- “约定优于配置”与Magento改造尝试二之布局xml文件加载
- poj 3345 Bribing FIPA 树形背包
- ubuntu14.04+opencv 3.1+contrib安装及测试
- java poi 导入excel
- 首次使用windows管理界面访问安装在UNIX或linux下的DP服务器时提示无权限访问的解决方法
- fastjson使用(五) -- @JSONField使用
- RabbitMQ (二)工作队列
- node.js sql 注入攻击防御方法 (sql Injection)
- ArrayList动态数组的使用和遍历
- Ubuntu 14.04 Web服务器--Apache的安装和配置
- Unity第一人称镜头控制器
- iOS网络协议----HTTP/TCP/IP浅析
- java poi 导出excel
- C语言关于localtime_s()和asctime_s()两个函数的用法。