fastjson使用-- @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;
}
具体的代码,就是上面的,挺简单的。下面来看看结果:
{"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,所以没法识别。
根据上面我们可以总结出一个结论:
1.序列化(JavaBean --> json)时配置到对应字段的get()方法上
2.反序列化(json --> JavaBean)时配置到对应字段的set()方法上
fastjson使用-- @JSONField使用(转)的更多相关文章
- FastJson中@JSONField注解使用
最近做项目中,使用了json格式在服务器之间进行数据传输.但是发现json格式数据不符合JAVA中的变量定义规则,并且难以理解,因此需要在后台中做二次处理,将数据处理成我们系统中定义的格式. 思路: ...
- fastJson注解@JSONField使用的一个实例
1.实体类 package jsonArrayjsonObject.cn; import java.io.Serializable; import java.util.Date; import com ...
- fastjson的@JSONField注解
@JSONField作用:在字段和方法上1.Field:@JSONField作用在Field时,name可以定义输入key的名字,反序列化的时 值不会赋值到属性上2.作用在setter和getter方 ...
- fastjson的@JSONField注解的一点问题
@JSONField 看源码它可以作用于字段和方法上. 引用网上说的, 一.作用Field @JSONField作用在Field时,其name不仅定义了输入key的名称,同时也定义了输出的名称. 但是 ...
- Springboot使用alibaba的fastJson,@JSONField不起作用的问题
在Springboot中默认的JSON解析框架是jackson 今天引入alibaba的fastjson,使用@JSONField(serialize=false),让@RestController转 ...
- fastjson简单使用demo,@JSONField注解属性字段上与set、get方法上。实体类toString(),实体类转json的区别;_下划线-减号大小写智能匹配
一.demo代码 @JSONField注解属性字段上与set.get方法上.使用@Data注解(lombok插件安装最下方),对属性“笔名”[pseudonym]手动重写setter/getter方法 ...
- fastjson @JSONField
此文来源于:https://blog.51cto.com/xiaok007/2164029 1.作用在FIELD(成员变量上) 注意:1.若属性是私有的,必须有set*方法.否则无法反序列化. pac ...
- Fastjson妙用之@JSONField注解
在开发的过程中使用json格式的地方非常多,现在前后端分离的项目中,前后端数据交换的格式一般为json,这种格式的优/缺点这里不再赘述,感兴趣的可以百度.把java中的实体类序列化为json的方式也有 ...
- FastJson转换自定义枚举类
在项目中有些状态需要采用枚举类型,在数据库中保存的是name(英文),而前台需要显示的是text(中文). 所以这就需要自己去实现序列. 例如对象: import java.util.Date; im ...
随机推荐
- 后端小白的VUE入门笔记, 进阶篇
使用 vue-cli( 脚手架) 搭建项目 基于vue-cli 创建一个模板项目 通过 npm root -g 可以查看vue全局安装目录,进而知道自己有没有安装vue-cli 如果没有安装的话,使用 ...
- Linux(Ubuntu)安装Swift和Swiftlint
很多时候iOS开发完毕需要接入CI中,而很多CI是基于Linux的,需要在Linux平台安装Swift和Swiftlint,下面就是针对这两个软件的安装步骤. Swift安装 环境 系统:Ubuntu ...
- ASP.NET CORE系列【七】分析NetCore启动原理
前言 有很久一段时间没更新了,因为工作和家里的问题导致没能坚持, 现在开始会继续每周更新,主要是记录自己所学和一起讨论解决过的问题,一起成长, 为.net圈子添砖加瓦! 介绍 到目前为止应该很多同学已 ...
- java并发编程(十八)----(线程池)java线程池框架Fork-Join
还记得我们在初始介绍线程池的时候提到了Executor框架的体系,到现在为止我们只有一个没有介绍,与ThreadPoolExecutor一样继承与AbstractExecutorService的For ...
- JavaWeb——Servlet开发1
Java Servlet是运行在服务器端上的程序,Servlet是Java Servlet包中的一个接口,能够直接处理和相应客户端的请求,也可以将工作委托给应用的其他类. public interfa ...
- 「求助」关于MacOS 适配不了SOIL的问题 以及我自己愚蠢的解决办法
我的环境 macOS High Sierra 10.13.6 (2018) 我的SOIL源是通过 终端 git clone https://github.com/DeVaukz/SOIL 直接从gay ...
- python 之 前端开发(基本选择器、组合选择器、 交集与并集选择器、序列选择器、属性选择器、伪类选择器、伪元素选择器)
11.3 css 11.31 基本选择器 11.311 id选择器 根据指定的id名称,在当前界面中找到对应的唯一一个的标签,然后设置属性 <!DOCTYPE html> <html ...
- c# 多进程写信息到前台控件
private void DispMsg(string strMsg, bool clearlb = false) { if (this.lberror.InvokeRequired == false ...
- 如何在logback.xml中自定义动态属性
当使用logback来记录Web应用的日志时,我们通过在logback.xml中配置appender来指定日志输出格式及输出文件路径,这在一台主机或一个文件系统上部署单个实例没有问题,但是如果部署多个 ...
- VSCode 使用Settings Sync同步配置(最新版教程,非常简单)
VSCode 使用Settings Sync同步配置(最新版教程,非常简单) 之前无意中听到有人说,vsCode最大的缺点就是每次换个电脑或者临时去个新环境,就要配置一下各种插件,好不麻烦,以至于面试 ...