2.Spring boot入门之JSON的处理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/littlexbear/article/details/81592443
  • SpringBoot默认使用jackson处理json信息
//User实体类
public class User {

    private int id;
    private String name;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

//控制器层
@RestController
public class HelloController {
    /**
     * 建立请求映射
     * @return
     */
    @RequestMapping("/hello")
    public  String hello(){
        return "hello";
    }

    /**
     * SpringBoot返回实体类对象数据
     * 默认使用的json解析框架是jackson
     * @return
     */
    @RequestMapping("/getUser")
    public User getUesr(){
        User user = new User();
        user.setId(001);
        user.setName("张三");
        return user;
    }
}
//主类中访问
@SpringBootApplication
public class App {
     public static void main(String[] args){
        System.out.println("Hello Spring Boot !");
        SpringApplication.run(App.class,args);
    }
}
  1. 使用自定义的json解析工具fastjson解析

    • 配置引入依赖
    • 配置转换器(有两种方式):

      第一种方法:继承WebMvcConfigurerAdapter,重写其中的configureMessageConverters方法,注意中文的处理,**代码如下**:

 @SpringBootApplication
public class App extends WebMvcConfigurerAdapter {

    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        super.configureMessageConverters(converters);

        /**
         * 1.需要先定义一个convert转换消息对象
         * 2.添加fastJson的配置信息,如:是否要格式化返回的Json数据
         * 3.在convert中添加配置信息
         * 4.将convert添加到converts中
         */
        //1.需要先定义一个convert转换消息对象
        FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
        //2.添加fastJson的配置信息,如:是否要格式化返回的Json数据
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
        //3.在convert中添加配置信息
        fastConverter.setFastJsonConfig(fastJsonConfig);

        //处理中文乱码问题
        List<MediaType> fastMediaTypes = new ArrayList<>();
        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
        fastConverter.setSupportedMediaTypes(fastMediaTypes);
        fastConverter.setFastJsonConfig(fastJsonConfig);
        //4.将convert添加到converts中
        converters.add(fastConverter);
    }

 // main方法中启动应用程序
  //@param args
public static void main(String[] args){
        System.out.println("Hello Spring Boot !");
        SpringApplication.run(App.class,args);
        }
}

第二种方法:使用@Bean注解方式,代码如下:

@SpringBootApplication
public class App {

    /**
     * 使用@Bean注入FastJsonHttpMessageConvert
     * @return
     */
    @Bean
    public HttpMessageConverters fastJsonHttpMessageConverters(){

        //1.需要先定义一个convert转换消息对象
       FastJsonHttpMessageConverter fastConverter= new FastJsonHttpMessageConverter();

        //2.添加fastJson的配置信息,如:是否要格式化返回的Json数据
       FastJsonConfig fastJsonConfig = new FastJsonConfig();
       fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);

        //3.在convert中添加配置信息
       fastConverter.setFastJsonConfig(fastJsonConfig);

        //处理中文乱码问题
        List<MediaType> fastMediaTypes = new ArrayList<>();
        fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);
        fastConverter.setSupportedMediaTypes(fastMediaTypes);
        fastConverter.setFastJsonConfig(fastJsonConfig);
        //4.将convert添加到converts中
       HttpMessageConverter<?> converter = fastConverter;
       return new HttpMessageConverters(converter);

    }


    /**
     * main方法中启动应用程序
     * @param args
     */
    public static void main(String[] args){
        System.out.println("Hello Spring Boot !");
        SpringApplication.run(App.class,args);
    }
}

代码下载地址

阅读更多
想对作者说点什么?

博主推荐

换一批

没有更多推荐了,返回首页