初学springboot使用fastJson替换默认的jackson后出现中文乱码
解决方式1:
import java.util.ArrayList; import java.util.List; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.http.MediaType; 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 // 继承 WebMvcConfigurerAdapter 用于将fastjson替换原有的jackson public class MainApplication extends WebMvcConfigurerAdapter { // 配置fastJson 用于替代jackson @Override public void configureMessageConverters(List<HttpMessageConverter<?>> converters) { super.configureMessageConverters(converters); //定义一个convert 转换消息的对象 FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); // 2 添加fastjson 的配置信息 比如 是否要格式化 返回的json数据 FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures( SerializerFeature.PrettyFormat ); fastConverter.setFastJsonConfig(fastJsonConfig); // 解决乱码的问题 List<MediaType> fastMediaTypes = new ArrayList<>(); fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8); fastConverter.setSupportedMediaTypes(fastMediaTypes); converters.add(fastConverter); } public static void main( String[] args ) { SpringApplication.run(MainApplication.class, args); } }
解决方式2:
在controller 的方法中 地址映射加入指定编码格式 这个时候也中文不乱码了 @RequestMapping(value = "/", produces = "application/json; charset=utf-8")