SpringBoot——json数据处理
使用默认的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); 
 } 
} 
 
                    
                
 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号