1> pom中引入fastjson相关依赖:
com.alibaba fastjson 1.2.77
2> 添加FastJsonHttpMessageConverter类型转换器配置(这种配置方式是无效的):
@Configuration
public class FastJsonMessageConverterConfig implements WebMvcConfigurer{public FastJsonHttpMessageConverter fastJsonHttpMessageConverter() {return new FastJsonHttpMessageConverter();}@Overridepublic void configureMessageConverters(List> converters) {converters.add(fastJsonHttpMessageConverter());}
}
3> JSON字符串对应的JAVA模型:
@Data
public class Person {private String name;private Integer age;private Boolean sex;private String otherInfo;
}
4> 后端Controller接口:

@Configuration
public class FastJsonMessageConverterConfig implements WebMvcConfigurer{public FastJsonHttpMessageConverter fastJsonHttpMessageConverter() {return new FastJsonHttpMessageConverter();}@Overridepublic void configureMessageConverters(List> converters) {converters.add(fastJsonHttpMessageConverter());}
}
使用上述配置方式配置FastJsonHttpMessageConverter,其不会生效,解析JSON类型参数依旧是使用的MappingJackson2HttpMessageConverter。
因为自定义的FastJsonHttpMessageConverter 排在所有MessageConverter的最后;

解决措施很简单:将FastJsonHttpMessageConverter消息转换器 添加在MappingJackson2HttpMessageConverter 前面;
@Configuration
public class FastJsonMessageConverterConfig{@Beanpublic HttpMessageConverters fastJsonHttpMessageConverters() {return new HttpMessageConverters(new FastJsonHttpMessageConverter());}
}
效果:

用于解析JSON类型参数的FastJsonHttpMessageConverter相比于Spring MVC原生携带的MappingJackson2HttpMessageConverter多了两个作用:
other_info 转为 otherInfo;

FastJsonHttpMessageConverter处理请求参数的入口如下:

判断FastJsonHttpMessageConverter是否可以转换当前ContentType的请求:

直接调用FastJson的序列化API将JSON字符串数据系列化为相应的Java Type。
