zoukankan      html  css  js  c++  java
  • 解决springboot序列化 json数据到前端中文乱码问题

    前言

    关于springboot乱码的问题,之前有文章已经介绍过了,这一篇算是作为补充,重点解决对象在序列化过程中出现的中文乱码的问题,以及后台报500的错误。

    问题描述

    • spring Boot 中文返回给浏览器乱码 解析成问号?? fastJson jackJson

    • spring boot 新增配置解决后台返回 json 到前台中文乱码之后,出现返回json数据报错:no convertter for return value of type

    • 注释掉解决中文乱码的问题之后返回对象json正常

    解决中文乱码的配置

    1. @Configuration

    2. @EnableWebMvc

    3. @ComponentScan

    4. public class MvcConfiguration extends WebMvcConfigurerAdapter {

    5.    @Bean

    6.    public HttpMessageConverter<String> responseBodyConverter(){

    7.        StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));

    8.        return converter;

    9.    }

    10.    @Override

    11.    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {

    12.        super.configureMessageConverters(converters);

    13.        //解决中文乱码

    14.        converters.add(responseBodyConverter());

    15.        //解决 添加解决中文乱码后 上述配置之后,返回json数据直接报错 500:no convertter for return value of type

    16.        converters.add(messageConverter());

    17.    }

    18. }

    除了上述配置之后还有添加MappingJackson2HttpMessageConverter

    1. @Bean

    2.    public MappingJackson2HttpMessageConverter messageConverter() {

    3.        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();

    4.        converter.setObjectMapper(getObjectMapper());

    5.        return converter;

    6.    }

    注意:responseBodyConverter和MappingJackson2HttpMessageConverter如果分开配置要确保前者不被覆盖,不然就会出现返回springboot返回json正常,但是返回中文乱码,或者返回中文不乱吗,但是返回对象或者json异常。

    解决springboot范湖中文乱码和返回json 500错误的完整代码

    1. /**

    2. * spring boot 解决后台返回 json 到前台出现中文乱码的问题

    3. */

    4. @Configuration

    5. @EnableWebMvc

    6. @ComponentScan

    7. public class MvcConfiguration extends WebMvcConfigurerAdapter {

    8.    @Bean

    9.    public HttpMessageConverter<String> responseBodyConverter(){

    10.        StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));

    11.        return converter;

    12.    }

    13.    @Bean

    14.    public ObjectMapper getObjectMapper() {

    15.        return new ObjectMapper();

    16.    }

    17.    @Bean

    18.    public MappingJackson2HttpMessageConverter messageConverter() {

    19.        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();

    20.        converter.setObjectMapper(getObjectMapper());

    21.        return converter;

    22.    }

    23.    @Override

    24.    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {

    25.        super.configureMessageConverters(converters);

    26.        //解决中文乱码

    27.        converters.add(responseBodyConverter());

    28.        //解决 添加解决中文乱码后 上述配置之后,返回json数据直接报错 500:no convertter for return value of type

    29.        converters.add(messageConverter());

    30.    }

    31. }


  • 相关阅读:
    Martix工作室考核题 —— 打印一个菱形
    Martix工作室考核题 —— 打印一个菱形
    Martix工作室考核题 —— 打印九九乘法表
    Martix工作室考核题 —— 打印九九乘法表
    Martix工作室考核题 —— 打印九九乘法表
    Martix工作室考核题 —— 201938 第三题
    Martix工作室考核题 —— 201938 第三题
    Martix工作室考核题 —— 201938 第三题
    Martix工作室考核题 —— 201938 第一题
    fiddler模拟发送post请求
  • 原文地址:https://www.cnblogs.com/edda/p/14028858.html
Copyright © 2011-2022 走看看