com.fasterxml.jackson.annotation.JsonFormat 自定义时间格式失效!!!
问题:在请求三方接口,一直请求失败,查看日志调试来看,原来是请求的日期参数不对,但是我传递的格式都是按照接口文档来传递的,百思不得其解,经过查阅资料,发现是JsonFormat 自定义时间格式失效了!
原因:因为我直接把参数塞到了 JSONObject 里,编译的时候会反序列化,导致了JsonFormat 失效,换成ObjectMapper,然后再传化一下String,JsonFormat 自定义时间格式可以生效了!
//Hutool web 请求方式
JSONObject valueAsString = new JSONObject(param);
HttpResponse response = HttpRequest.post(url)
.header("Accept-Charset", "UTF-8")
.header("Content-Type", "application/json")
.body(valueAsString)
.timeout(6000)
.executeAsync();
JSONObject responseJson = new JSONObject(response.body());
String type = (String) responseJson.get("type");
String message = (String) responseJson.get("message");
dto.setType(type);
dto.setMessage(message);
换成ObjectMapper;
//Hutool web 请求方式
ObjectMapper mapper = new ObjectMapper();
String valueAsString = mapper.writeValueAsString(param);
HttpResponse response = HttpRequest.post(url)
.header("Accept-Charset", "UTF-8")
.header("Content-Type", "application/json")
.body(valueAsString)
.timeout(6000)
.executeAsync();
JSONObject responseJson = new JSONObject(response.body());
String type = (String) responseJson.get("type");
String message = (String) responseJson.get("message");
dto.setType(type);
dto.setMessage(message);