转载

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

问题描述

  • 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. * 在线助手博客 http://www.it399.com/blog/index.jsp
  4. */
  5. @Configuration
  6. @EnableWebMvc
  7. @ComponentScan
  8. public class MvcConfiguration extends WebMvcConfigurerAdapter {
  9. @Bean
  10. public HttpMessageConverter<String> responseBodyConverter(){
  11. StringHttpMessageConverter converter = new StringHttpMessageConverter(Charset.forName("UTF-8"));
  12. return converter;
  13. }
  14. @Bean
  15. public ObjectMapper getObjectMapper() {
  16. return new ObjectMapper();
  17. }
  18. @Bean
  19. public MappingJackson2HttpMessageConverter messageConverter() {
  20. MappingJackson2HttpMessageConverter converter = new MappingJackson2HttpMessageConverter();
  21. converter.setObjectMapper(getObjectMapper());
  22. return converter;
  23. }
  24. @Override
  25. public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
  26. super.configureMessageConverters(converters);
  27. //解决中文乱码
  28. converters.add(responseBodyConverter());
  29. //解决 添加解决中文乱码后 上述配置之后,返回json数据直接报错 500:no convertter for return value of type
  30. converters.add(messageConverter());
  31. }
  32. }

来自 在线助手|在线工具|在线生成|在线制作 博客频道【spring boot 解决后台返回 json 到前台中文乱码之后出现返回json数据报错 500】,原文链接:http://www.it399.com/blog/web/201805081017

正文到此结束
Loading...