FastJson是阿里开源的一款用于解析Json数据的产品,解析Json数据效率更高。
下面记录一下SpringBoot2.X整合FastJson的方法。
由于WebMvcConfigurerAdapter类在SpringBoot2.X中已经废弃,所以采用注入Bean的形式进行整合。
首先在POM文件中添加如下依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.33</version>
</dependency>
在SpringBoot的启动类中注入Bean,代码如下:
package springbootProject;
import java.util.List;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.http.HttpMessageConverters;
import org.springframework.context.annotation.Bean;
import org.springframework.http.converter.HttpMessageConverter;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
@SpringBootApplication
public class App{
@Bean
public HttpMessageConverters fastHttpMessageConverters() {
FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig = new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
converter.setFastJsonConfig(fastJsonConfig);
HttpMessageConverter<?> converter2 = converter;
return new HttpMessageConverters(converter2);
}
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
通过FastJson,可以在model类的属性上进行格式化,比如时间:
package springbootProject.model;
import java.util.Date;
import com.alibaba.fastjson.annotation.JSONField;
public class Demo {
private int id;
private String name;
@JSONField(format="yyyy-mm-dd HH:mm")
private Date date;
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
通过调用项目中的controller类,返回的实体对象转换成JSON数据形式如下: