com.fasterxml.jackson.annotation.JsonFormat 自定义时间格式失效

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);

你可能感兴趣的:(Erro,Log,java,json,开发语言,spring,java-ee)