赞
踩
使用了lombok省略了实体类的set和get方法
JSON 处理 三大主流框架 -jsckson -json -fastjson 序列化 和 反序列化 序列化: 对象 -> JSON (响应JSON) 反序列化: JSON -> 对象 (请求参数是JSON) HttpMessageConverter: 转换器: 对象->JSON JSON->对象 所有的JSON工具都会自动提供 HttpMessageConverter -jackjson:MappingJackson2HttpMessageConverter(自动动) -json:MappingJackson2HttpMessageConverter -fastjson springMVC 框架中 ,jackson 和 gson 已经自动配置好了(只需要添加依赖),fastjson需要开发者手动配置:HttpMessageConverter ObjectMapper、Gson
1.springboot整合jackson(springboot项目中自动添加json依赖,直接使用,不需要配置)
案例
bean上面配置
@Data //批量忽略属性字段 //@JsonIgnoreProperties({"age","name"}) public class User { //指定序列化/反序列化时的名称,默认就是属性名 @JsonProperty("aaage") private Integer age; //显示顺序 @JsonProperty(index = 98) private String name; //配置日期的格式(注意时区问题) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "Asia/shanghai") private Date birthday; //序列化/反序列化忽略某一个字段 @JsonIgnore private String address; } Jackson配置: 1.在各个对象配置 需要在每个实体类中配置json 2.全局配置 创建配置类,重新定义ObjectMapper对象 @Configuration public class WebMvcConfig { @Bean ObjectMapper objectMapper(){ ObjectMapper om = new ObjectMapper(); om.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); return om; } } 常用的属性两个 1. //指定序列化/反序列化时的名称,默认就是属性名 @JsonProperty("aaage") private Integer age; 2.//配置日期的格式(注意时区问题) @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "Asia/shanghai") private Date birthday;
2.springboot整合gson(springboot项目中自动添加json依赖,需要先移除掉json依赖,添加gson依赖
maven 里手去除json <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 排除掉json --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-json</artifactId> </exclusion> </exclusions> </dependency> <!-- gson begin--> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.5</version> </dependency> <!-- gson end--> 手动配置gson @Configuration public class WebMvcConfig { @Bean ObjectMapper objectMapper(){ ObjectMapper om = new ObjectMapper(); om.setDateFormat(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss")); return om; } }
3.fastjson的使用,首先去除掉json,在手动添加fastjson
maven 里手去除json <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 排除掉json --> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-json</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.75</version> </dependency> public class WebMvcConfig2 { @Bean FastJsonHttpMessageConverter fastJsonHttpMessageConverter (){ FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter(); FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setCharset(Charset.forName("utf-8")); fastJsonConfig.setDateFormat("yyyy-MM-dd"); fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig); fastJsonHttpMessageConverter.setDefaultCharset(Charset.forName("utf-8")); return fastJsonHttpMessageConverter; } }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。