【问题标题】:Send a RestTemplate.postForEntinty() using Json objects as header and body of the post request使用 Json 对象作为发布请求的标头和正文发送 RestTemplate.postForEntinty()
【发布时间】:2021-03-08 18:04:33
【问题描述】:

有没有办法将现有的 java 对象转换为 Json 对象,并将这些 Json 对象作为请求头和请求体发送到 RestTemplate.postForEntinty()。我有一个功能,我需要将类名和类属性映射到外部 API 请求标头和请求正文有效负载中使用的名称,类名和属性名是不同的,不能写成相同的。我只能想到将 java 对象转换为 Json 对象,然后发送这些对象进行精确映射。

尝试做一些类似下面的事情,但到目前为止我还没有成功:

public Map<String, Object> getApiData(Header headers, Body body){
Gson gson = new Gson();

HttpEntity<?> request = new HttpEntity<>(gson.toJson(headers), gson.toJson(body));
String url = "end point url";
ResponseEntity<String> response = restConnector.postForEntinty(url, request, String.class);

}

上面的函数已经接受了填充的java对象(头和正文。需要将这些对象转换为Json对象。我使用com.fasterxml.jackson.annotation.JsonProperty来映射类属性与api 属性,我的假设是在将 java 对象转换为 Json 对象后,我将能够将类属性与 API 请求中使用的属性名称进行映射。

我应该采取什么方法来解决这种情况,我的想法是否正确?

【问题讨论】:

    标签: java spring-boot gson


    【解决方案1】:

    你好,我想你可以试试 Jackson ObjectMapper。

    这可能会解决您的问题。

    请点击以下链接。 ObjectMapper

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-11-26
      • 2017-08-31
      • 2014-03-10
      • 2018-04-24
      • 1970-01-01
      • 2021-08-13
      • 2021-06-27
      • 1970-01-01
      相关资源
      最近更新 更多