zoukankan      html  css  js  c++  java
  • SpringBoot------使用Fastjson解析Json数据

    方法一:

    1.在pom.xml文件下添加依赖包

    <dependency>
      <groupId>com.alibaba</groupId>
      <artifactId>fastjson</artifactId>
      <version>1.2.15</version>
    </dependency>

    2.修改启动文件

    package myshop;
    
    import java.util.List;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.http.converter.HttpMessageConverter;
    import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
    
    import com.alibaba.fastjson.serializer.SerializerFeature;
    import com.alibaba.fastjson.support.config.FastJsonConfig;
    import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
    
    @SpringBootApplication
    public class App extends WebMvcConfigurerAdapter{
        @Override
        public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
            // TODO Auto-generated method stub
            super.configureMessageConverters(converters);
            
            FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
            FastJsonConfig fastConfig = new FastJsonConfig();
            fastConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
            fastConverter.setFastJsonConfig(fastConfig);
            converters.add(fastConverter);
        }
        
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            SpringApplication.run(App.class, args);
        }
    
    }

    3.修改实体类

    package myshop.entity;
    
    import java.util.Date;
    
    import com.alibaba.fastjson.annotation.JSONField;
    
    /**
     * 用户类
     *
     */
    public class User {
        private int id;
        private String username;
        private String password;
        @JSONField(format = "yyyy-MM-dd HH-mm")
        private Date createTime;
        /**
         * 如果不希望返回remark信息
         * serialize是否序列化
         */
        @JSONField(serialize = false)
        private String remark;
        public int getId() {
            return id;
        }
        public void setId(int id) {
            this.id = id;
        }
        public String getUsername() {
            return username;
        }
        public void setUsername(String username) {
            this.username = username;
        }
        public String getPassword() {
            return password;
        }
        public void setPassword(String password) {
            this.password = password;
        }
        public Date getCreateTime() {
            return createTime;
        }
        public void setCreateTime(Date createTime) {
            this.createTime = createTime;
        }
        public String getRemark() {
            return remark;
        }
        public void setRemark(String remark) {
            this.remark = remark;
        }
    }

    4.修改控制器

    package myshop.controller;
    
    import java.util.Date;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    import myshop.entity.User;
    
    /**
     * @RestController = @Controller + @RequestBody
     *
     */
    @RestController
    public class HelloController {
        
        /**
         * 建立请求映射
         *
         */
        @RequestMapping("/hello")
        public String hello() {
            return "hello";
        }
        
        /**
         * SpringBoot默认的解析框架Jackson
         *
         */
        @RequestMapping("/getUser")
        public User gerUser()
        {
            User user = new User();
            user.setId(1);
            user.setUsername("天恒");
            user.setPassword("123456");
            user.setCreateTime(new Date());
            //此信息不会被返回
            user.setRemark("这是备注信息!");
            return user;
        }
    }

    5.启动项目,在浏览器输入地址:http://localhost:8080/getUser

    方法二:除了启动类,其余代码都和方法一一样

    package myshop;
    
    import org.springframework.boot.SpringApplication;
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    import org.springframework.boot.autoconfigure.web.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 fastJsonHttpMessageConverter()
        {
            FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
            FastJsonConfig fastConfig = new FastJsonConfig();
            fastConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
            fastConverter.setFastJsonConfig(fastConfig);
            
            HttpMessageConverter<?> converts = fastConverter;
            return new HttpMessageConverters(converts);
        }
        
        public static void main(String[] args) {
            // TODO Auto-generated method stub
            SpringApplication.run(App.class, args);
        }
    
    }
  • 相关阅读:
    gc buffer busy/gcs log flush sync与log file sync
    给Oracle年轻的初学者的几点建议
    Android 编程下帧动画在 Activity 启动时自动运行的几种方式
    Android 编程下 Touch 事件的分发和消费机制
    Java 编程下 static 关键字
    Java 编程下 final 关键字
    Android 编程下模拟 HOME 键效果
    Why Are Thread.stop, Thread.suspend, Thread.resume and Runtime.runFinalizersOnExit Deprecated ?
    Extjs4 大型项目目录结构重构
    [转]SQLServer 2008 允许远程连接的配置方法
  • 原文地址:https://www.cnblogs.com/tianhengblogs/p/9350610.html
Copyright © 2011-2022 走看看