版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
springboot默认自带json解析框架,默认使用jackson,如果使用fastjson,可以按照下列方式配置使用
pom文件引入以下依赖
<dependencies>
<!-- FastJson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.46</version>
</dependency>
</dependencies>
官方文档说的1.2.10以后,会有两个方法支持HttpMessageconvert,一个是FastJsonHttpMessageConverter,支持4.2以下的版本,一个是FastJsonHttpMessageConverter4支持4.2以上的版本,具体有什么区别暂时没有深入研究。这里也就是说:低版本的就不支持了,所以这里最低要求就是1.2.10+。
HttpMessageConverters
@Configuration
public class HttpConverterConfig {
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
// 1.定义一个converters转换消息的对象
FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
// 2.添加fastjson的配置信息,比如: 是否需要格式化返回的json数据
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
// 日期格式化
// fastJsonConfig.setDateFormat("yyyy-MM-dd HH:mm:ss");
// 3.在converter中添加配置信息
fastConverter.setFastJsonConfig(fastJsonConfig);
// 4.将converter赋值给HttpMessageConverter
HttpMessageConverter<?> converter = fastConverter;
// 5.返回HttpMessageConverters对象
return new HttpMessageConverters(converter);
}
}
创建实体
@Data
public class User {
private int id;
private String name;
@JSONField(format = "yyyy-MM-dd HH:mm")
private Date createTime;
/**
* serialize:是否需要序列化属性 ;在实体类中使用@JSONField(serialize=false),此字段就不返回了
*/
@JSONField(serialize = false)
private String remarks;
}
测试
@RestController
public class UserController {
/**
* Spring Boot默认使用的json解析框架是jackson
*
* @return
*/
// http://localhost:8080/getUser
@RequestMapping("/getUser")
public User getUser() {
User user = new User();
user.setId(1);
user.setName("张三");
user.setCreateTime(new Date());
user.setRemarks("备注信息");
return user;
}
}
代码托管:springboot_fastJson