springboot 如何使用jackson来处理实体类
目录
- 使用jackson来处理实体类
- 1、常用框架:阿里fastjson,谷歌gson等
- 2、在现在的开发中,会有很多调用接口的情况
- Springboot Jackson的操作
- 这里写了一个简单的小demo记录一下
使用jackson来处理实体类
1、常用框架:阿里fastjson,谷歌gson等
在大量数据情况下对比性能:
Jackson > fastjson > Gson > Json-lib。
2、在现在的开发中,会有很多调用接口的情况
比如前后台分离采用json格式,或者调用第三方API等。
小编就以User为例,来讲几个例子:
实体类
user实体
controller
返回结果
可以看见User整个信息都被暴露出去了,密码、手机号、而且生日的格式还是原生的。
如何处理呢?
我们可以使用@JsonIgnore来忽略某个字段
JsonIgnore
使用@JsonFormat来格式化日期
JsonFormat
出于安全考虑,不让别人猜出我们的实体字段来映射出数据库字段,我们还可以使用
@JsonProperty来起别名
JsonProperty
说这几个常用的,还有比如@JsonInclude(JsonInclude.Include.NON_NULL)空字段不返回,大家可以问问度娘,百度jackson注解。
Springboot Jackson的操作
有一段时间没写博客了,虽然是菜鸟一枚但毕竟总要有东西记录学习的,我相信有志者事竟成。今天在工作中使用Jackson转换了一个javabean,传到测试服上之后发现日期少了一天,使用的是@JsonFormat注解。
这里写了一个简单的小demo记录一下
表数据:
实体类属性:
controller层就省略掉了,就是调用dao进行数据查询。
使用postman请求结果如下:
发现时间是2018/11/15,但数据库中是2018-11-16,少了一天,原因是在进行日期格式化的时候没有加入要格式化日期的时区,中国的时区是东八区,
需要加入timezone="GMT+8"
再次测试:
这次就可以了!
另外还有几个常用的注解:
@JsonIgnore
: 在转换的时候忽略该字段;@JsonProperty
:将该字段的名称在转换成json格式后以该名称显示;@JsonIgnorePeroperty({"id","name"})
:忽略该注解所包含的全部属性,里面的参数是一个数组,会把包含的名称的全部字段都忽略掉,包括子类;@JsonInclude(Include.NON_EMPTY)
:在属性不为空时序列化此字段,对于字符串,即null或空字符串;
用到的暂时就这些了。以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
springboot项目中jackson-序列化-处理 NULL教程
在项目中有事需要对值为NULL的对象中Field不做序列化输入配置方式如下: [配置类型]: 源码包中的枚举类: public static enum Include { ALWAYS, NON_NULL, NON_ABSENT, NON_EMPTY, NON_DEFAULT, USE_DEFAULTS; private Include() { } } Include.Include.ALWAYS 默认 Include.NON_DEFAULT 属性为默认值不序列化 Include.NON_EMP
-
详解springboot之jackson的两种配置方式
springboot 针对jackson是自动化配置的,如果需要修改,有两种方式: 方式一:通过application.yml 配置属性说明:## spring.jackson.date-format指定日期格式,比如yyyy-MM-dd HH:mm:ss,或者具体的格式化类的全限定名 spring.jackson.deserialization是否开启Jackson的反序列化 spring.jackson.generator是否开启json的generators. spring.jackson
-
Springboot中如何使用Jackson
1.SpringMVC中默认集成 SpringMVC已经默认集成了JackSon,如下所示: @RequestMapping("/addUserInfo") public UserInfo addUserInfo(@RequestBody UserInfo userInfo){ } 可以用UserInfo对象来接前台传过来的json,SpringMVC已经帮我们自动反序列化. 可以看到,在SpringBoot中,只需要导入web starter,不需要添加其他的依赖,就可以使用Jack
-
Spring boot中Jackson的操作指南
前言 有一段时间没写博客了,虽然是菜鸟一枚但毕竟总要有东西记录学习的,我相信有志者事竟成.今天在工作中使用Jackson转换了一个javabean,传到测试服上之后发现日期少了一天,使用的是@JsonFormat注解. Spring-Boot是基于Spring框架的,它并不是对Spring框架的功能增强,而是对Spring的一种快速构建的方式. 好了,下面话不多说了,来一起看看详细的介绍吧 这里写了一个简单的小demo记录一下: 表数据: 实体类属性: controller层就省略掉了,就是调用
-
springboot 如何使用jackson来处理实体类
目录 使用jackson来处理实体类 1.常用框架:阿里fastjson,谷歌gson等 2.在现在的开发中,会有很多调用接口的情况 Springboot Jackson的操作 这里写了一个简单的小demo记录一下 使用jackson来处理实体类 1.常用框架:阿里fastjson,谷歌gson等 在大量数据情况下对比性能: Jackson > fastjson > Gson > Json-lib. 2.在现在的开发中,会有很多调用接口的情况 比如前后台分离采用json格式,或者调用第三
-
Springboot中如何通过yml为实体类注入属性
目录 1.编写实体类 2.编写yml文件 3.测试 4.结果 5.可以不用@ConfigurationProperties(prefix = “person”)注解方式 6.@ConfigurationProperties(prefix = “person”) 延伸:以后除了可以为实体类注入属性,还可以为配置类注入相关的配置信息 1.编写实体类 @Component @ConfigurationProperties(prefix = "person") public class Per
-
Springboot如何根据实体类生成数据库表
目录 Springboot 实体类生成数据库表 第一步:添加springboot-data-jpa和数据库的依赖关系 第二步:编写yml文件的配置 第三步:实体类中使用的注解 第四步:启动项目是否生成表格 第五步:启动项目即可 springboot继承JPA根据实体类生成数据库中的表 1. pom中添加的依赖 2. application.yml中配置jpa配置 定义用户实体类,通过注解映射成数据库中的表 启动springboot项目 Springboot 实体类生成数据库表 JPA:sprin
-
SpringBoot 返回Json实体类属性大小写的解决
目录 返回Json实体类属性大小写问题 Json转换大小写的坑 返回Json实体类属性大小写问题 总归上述问题Rt,其实今天开发刚遇到,当时找了半天为啥前台传参后台却接收不到,原来是返回的时候返回小写,但是前台依旧大写传参. 查了很多后发现其实是json返回的时候把首字母变小写了,也就是Spring Boot中Jackson的功劳 百度后得@JsonProperty注解完美解决.但与此同时会出现两个问题 如果注解放到属性上,则返回的时候既有大写也有小写, @JsonProperty("Ao&qu
-
springboot+mybatis通过实体类自动生成数据库表的方法
前言 本章介绍使用mybatis结合mysql数据库自动根据实体类生成相关的数据库表. 首先引入相关的pom包我这里使用的是springboot2.1.8.RELEASE的版本 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <version>2.1.0</ve
-
解决springboot 实体类String转Date类型的坑
目录 springboot 实体类String转Date类型 Date解析String类型的参数 springboot 实体类String转Date类型 前端传入一个String的时间字符串如:2019-07-18 23:59:59 后端实体类要在头顶加注解: @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") 不然会出现报错 Date解析String类型的参数 1.首先建立String to Date 的解析实现 import org.a
-
SpringBoot+jpa配置如何根据实体类自动创建表
目录 jpa配置根据实体类自动创建表 1.配置文件application.properties 2.pom.xml引入包 3.编写实体类 4.运行项目 5.针对项目启动以后数据库并未生成数据库表问题 jpa根据Entry自动生成表 1.加入依赖 2.配置 application.yml 3. 创建Entity jpa配置根据实体类自动创建表 1.配置文件application.properties spring.datasource.url=jdbc:mysql://localhost:3306
-
springboot+mybatis报错找不到实体类的问题
目录 springboot+mybatis报错找不到实体类 找不到实体类的错误可能有很多,接下来列举几个地方 springboot+mybatis 找不到实体类问题 No qualifying bean of type‘com.wj.bfsh.mapper.SysUserMapper‘ available 问题出现在 springboot+mybatis报错找不到实体类 找不到实体类的错误可能有很多,接下来列举几个地方 启动类位置不对,启动类应该在你的service和dao 的上一层,因为Spr
-
实体类或对象序列化时,忽略为空属性的操作
第一种,在配置文件配置 在application.xml直接配置,这种方式是全局配置,所有返回给前端对象的属性为null或""都不进行序列化: spring: jackson: #实体类转json时字段为null不参与序列化 default-property-inclusion: NON_EMPTY default-property-inclusion 常用的4种类型 ALWAYS 默认 NON_DEFAULT 属性为默认值不序列化 NON_EMPTY 属性为 ""
-
jackson 如何将实体转json json字符串转实体
目录 将实体转json json字符串转实体 实体转json json转实体 使用Jackson操作json数据,各场景实例 1. 对象(示例为 UserEntity)转 json 数据 2. json 数据 转 对象 3. map 转 json 数据 4. json 数据 转 map 5. List<UserEntity> 转 json 数据 6. json 数据 转 List<UserEntity> 7.接口接收稍微复杂一点的json数据,如何拆解 将实体转json json字
随机推荐
- js实现星星打分效果的方法
- 详解Nginx服务器中的日志相关配置
- javascript中的previousSibling和nextSibling的正确用法
- javascript 进度条 实现代码
- 调用WordPress函数统计文章访问量及PHP原生计数器的实现
- PHP实现QQ快速登录的方法
- JS正则子匹配实例分析
- JScript面向事件驱动的编程
- 详解Python爬虫的基本写法
- 在yii中新增一个用户验证的方法详解
- JS实现文件动态顺序载入的方法
- Linux值得信任吗?
- 详解Linux误删用户家目录的恢复方法
- jquery对table做排序操作的实例演示
- jQuery中on()方法用法实例详解
- ES6生成器用法实例分析
- javascript作用域和闭包使用详解
- Android编程实现动态支持多语言的方法
- Java concurrency之公平锁(二)_动力节点Java学院整理
- 详解C++中如何将构造函数或析构函数的访问权限定为private