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

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐