spring boot 解決後臺返回 json 到前臺中文亂碼之後出現返回json資料包錯

陳守印發表於2018-06-15


spring boot 解決後臺返回 json 到前臺中文亂碼



spring boot 解決後臺返回 json 到前臺中文亂碼,報錯 500:no convertter for return value of type,中文返回給瀏覽器亂碼 解析成問號?? 詳細錯誤資訊Failed to write HTTP message: org.springframework.http.converter.HttpMessageNotWritableException:No converter found for return value of type: class


後臺返回 json 到前臺中文亂碼解決辦法

一、解決中文亂碼的配置



@Configuration

@EnableWebMvc

@ComponentScan

public class MvcConfiguration extends WebMvcConfigurerAdapter {


    @Bean

    public HttpMessageConverter responseBodyConverter(){

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

        return converter;

    }


    @Override

    public void configureMessageConverters(List> converters) {

        super.configureMessageConverters(converters);

        //解決中文亂碼

        converters.add(responseBodyConverter());

        //解決 新增解決中文亂碼後 上述配置之後,返回json資料直接報錯 500:no convertter for return value of type

        converters.add(messageConverter());

    }


}


二、除了上述配置之後還有新增MappingJackson2HttpMessageConverter


 @Bean

    public MappingJackson2HttpMessageConverter messageConverter() {

        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();

        converter.setObjectMapper(getObjectMapper());

        return converter;

    }


注意:responseBodyConverter和MappingJackson2HttpMessageConverter如果分開配置要確保前者不被覆蓋,不然就會出現返回springboot返回json正常,但是返回中文亂碼,或者返回中文不亂嗎,但是返回物件或者json異常。


三、解決springboot範湖中文亂碼和返回json 500錯誤的完整程式碼


/**

 * spring boot 解決後臺返回 json 到前臺出現中文亂碼的問題

 * http://www.it399.com/blog/index.jsp

 */

@Configuration

@EnableWebMvc

@ComponentScan

public class MvcConfiguration extends WebMvcConfigurerAdapter {


    @Bean

    public HttpMessageConverter responseBodyConverter(){

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

        return converter;

    }


    @Bean

    public ObjectMapper getObjectMapper() {

        return new ObjectMapper();

    }


    @Bean

    public MappingJackson2HttpMessageConverter messageConverter() {

        MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();

        converter.setObjectMapper(getObjectMapper());

        return converter;

    }



    @Override

    public void configureMessageConverters(List> converters) {

        super.configureMessageConverters(converters);

        //解決中文亂碼

        converters.add(responseBodyConverter());

        //解決 新增解決中文亂碼後 上述配置之後,返回json資料直接報錯 500:no convertter for return value of type

        converters.add(messageConverter());

    }


}


轉載請註明原文連結:http://www.it399.com/blog/web/201805081017


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28470105/viewspace-2156254/,如需轉載,請註明出處,否則將追究法律責任。

相關文章