使用 Json 对象作为 post 请求的标头和正文发送 RestTemplate.postForEntinty()

时间:2021-03-08 18:04:33

标签: java spring-boot gson

有没有办法将现有的 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 对象(headers 和 body。需要将这些对象转换为 Json 对象。我已经使用 com.fasterxml.jackson.annotation.JsonProperty 将类属性与api 属性,我的假设是在将 java 对象转换为 Json 对象后,我将能够将类属性与 API 请求中使用的属性名称进行映射。

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

1 个答案:

答案 0 :(得分:0)

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

这可能会解决您的问题。

请点击以下链接。 ObjectMapper

相关问题