怪问题,服务端是标准的RESTFul风格,但接收方突然告诉我们解析不了,只说原因是json括号之间多了一个空格。
报文如下:
{"responseHead":{"A":1} }
这个问题和经理略微一想都觉得这不可能是我们做的,毕竟我们是用反的map,怎么能控制格式在两个括号之间加个空格呢?
虽然基本可以确定是调用方有什么变动,但结论还是要我们来改,于是琢磨了许久后,想起了消息转换器。
在启动类和配置类确认后,发现启动类确实配置了消息转换器。
@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
super.configureMessageConverters(converters);
FastJsonHttpMessageConverter fastConverter=new FastJsonHttpMessageConverter();
FastJsonConfig fastJsonConfig=new FastJsonConfig();
fastJsonConfig.setSerializerFeatures(
SerializerFeature.PrettyFormat
);
fastConverter.setFastJsonConfig(fastJsonConfig);
converters.add(fastConverter);
}
可以看到,代码中配置了json格式化,注掉后果然空格消失了,也顺便学习了消息转换器的其他配置。