使用默認的json解析工具jackson
Spring-boot應用程序提供了默認的json轉換器,為Jackson。
pom.xml中dependency配置:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
-
創建實體類User
public class User implements Serializable{ private String name; private int age; private Date createTime; .... }
-
創建controller
@RestController public class HelloController { /** * Spring boot 默認json解析框架是Jackson * @return */ @RequestMapping("/getUser") public User getUser() { User u = new User(); u.setName("張三"); u.setAge(33); u.setCreateTime(new Date()); return u; } }
-
啟動類
@SpringBootApplication public class MainApp{ public static void main(String[] args) { SpringApplication.run(MainApp.class, args); } }
啟動MainApp:訪問http://localhost:8080/getUser,結果如下:
{``"name"``:``"張三"``,``"age"``:33,``"createTime"``:``"2018-04-04T03:03:08.534+0000"``}
在這里能夠正常將Bean轉換為json數據,說明springboot對json進行了默認實現,使用的是默認的jackjson轉換器。
使用 fastjson
pom添加依賴:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.47</version>
</dependency>
修改User類:
public class User implements Serializable{
private String name;
private int age;
@JSONField(format="yyyy-MM-dd HH:mm")
private Date createTime;
...
}
- 實現fastjson自定義json轉換的第一種方式,Spring-Boot實現WebMvcConventer接口:
修改MainApp:
@SpringBootApplication
public class MainApp implements WebMvcConfigurer{
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
WebMvcConfigurer.super.configureMessageConverters(converters);
//創建fastjson轉換器實例
FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
//配置對象
FastJsonConfig config = new FastJsonConfig();
List<MediaType> mediaTypes = new ArrayList<>();
//中文編碼
MediaType mediaType = MediaType.APPLICATION_JSON_UTF8;
mediaTypes.add(mediaType);
config.setSerializerFeatures(SerializerFeature.PrettyFormat);
converter.setSupportedMediaTypes(mediaTypes);
converter.setFastJsonConfig(config);
converters.add(converter);
}
public static void main(String[] args) {
SpringApplication.run(MainApp.class, args);
}
}
啟動程序:訪問上面的路徑:
{
"age":33,
"createTime":"2018-04-04 11:14",
"name":"張三"
}
- 使用@Bean注解注入fastjson轉換器:修改MainApp如下:
@SpringBootApplication
public class MainApp{
@Bean
public HttpMessageConverters fastJsonHttpMessageConventers() {
FastJsonHttpMessageConverter converter = new FastJsonHttpMessageConverter();
FastJsonConfig config = new FastJsonConfig();
config.setSerializerFeatures(SerializerFeature.PrettyFormat);
List<MediaType> mediaTypes = new ArrayList<>();
mediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
converter.setSupportedMediaTypes(mediaTypes);
return new HttpMessageConverters(converter);
}
public static void main(String[] args) {
SpringApplication.run(MainApp.class, args);
}
}