• 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); 
     } 
    } 
    
  • 相关阅读:
    测试
    unittest发送测试报告邮件
    unittest生成测试报告
    Navicat连接Oracle详细教程
    Windows 2012 安装 Oracle 11g 报错:[INS-13001]环境不满足最低要求。
    Windows server 2012安装oracle11g(32/64位)步骤
    ElasticSearch和solr的差别
    HashMap和Hashtable的区别
    final关键字所修饰的类有什么特点
    springboot测试的时候插入数据: error performing isolated work; SQL [n/a]; nested exception is org.hibernate...
  • 原文地址:https://www.cnblogs.com/luckyhui28/p/12347905.html
Copyright © 2020-2023  润新知