SpringBoot——json數據處理


使用默認的json解析工具jackson

Spring-boot應用程序提供了默認的json轉換器,為Jackson。

pom.xml中dependency配置:

  <dependency> 
   <groupId>org.springframework.boot</groupId> 
   <artifactId>spring-boot-starter-web</artifactId> 
  </dependency> 
  1. 創建實體類User

    public class User implements Serializable{ 
     private String name;  
     private int age;  
     private Date createTime; 
        
        ....
    }
    
  2. 創建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; 
     } 
    }
    
  3. 啟動類

    @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; 
    ...
}
  1. 實現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":"張三" 
} 
  1. 使用@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); 
 } 
} 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM