苍穹外卖用户端历史订单不显示问题
- 在做苍穹外卖的时候,发下问题如下 历史订单不显示
- 这里我们通过debug的方式,查看后台数据的返回情况,发现没有问题
- 查看微信小程序控制台报错
这里我们找到,对应函数
在函数第一行加入console.log(time)
,再次请求数据
这里time数据从后端传过来为数组,而前端则接受的是String类型数据 - 于是查找资料发现
LocalDateTime返回数据默认序列化情况下会使用SerializationFeature.WRITE_DATES_AS_TIMESTAMPS
使用这个解析时就会打印出数组。 - 找到
sky-common/src/main/java/com/sky/json/JacksonObjectMapper.java
加入注解@Component
- 然后在
WebMvcConfiguration
中加入以下代码
@Autowired
private JacksonObjectMapper jacksonObjectMapper;
/**
* 在这个方法中,通过检查每个 HttpMessageConverter 是否是 MappingJackson2HttpMessageConverter 的实例,
* 然后用你的自定义 ObjectMapper 替换原来的 ObjectMapper,从而确保JSON的序列化和反序列化都使用你定制的设置
* @param converters
*/
@Override
public void extendMessageConverters(List<HttpMessageConverter<?>> converters) {
// 遍历所有已注册的HttpMessageConverter
for (HttpMessageConverter<?> converter : converters) {
// 找到MappingJackson2HttpMessageConverter
if (converter instanceof MappingJackson2HttpMessageConverter) {
MappingJackson2HttpMessageConverter jacksonConverter =
(MappingJackson2HttpMessageConverter) converter;
// 将其ObjectMapper替换为自定义的ObjectMapper
jacksonConverter.setObjectMapper(objectMapper);
}
}
}
- 再次运行程序,发现成功显示