发送带有JSON数据的POST请求Spring引导



我试图使用Spring引导以特定格式发送带有json数据的post请求。我没有得到预期格式的数据。请帮我解决。提前谢谢。

class UserService{
public void sendRequest(User data){
HttpHeaders header = new HttpHeaders();
mapHeaders.set("Content-Type","application/json");
Map<String,User> m= new HashMap<String,User>();
m.put("request",data);
//print m i.e. payload being sent
HttpEntity entity = new HttpEntity<Object>(m, header);
String url = some url here
ResponseEntity<Object> response = restTemplate.exchange(url, httpMethod, entity, 
Object.class);
}
}
class User{
private String firstName;
private String lastName;
}

打印有效载荷时,有效载荷显示为:

{request=User(firstName=Raj,lastName=Kumar)}

我想要的数据

{request={firstName=Raj,lastName=Kumar}}

您可以使用JSONObject:

Map<String, JSONObject> m = new HashMap<>();
m.put("request", new JSONObject(data));

结果:

{request={"firstName":"Raj","lastName":"Kumar"}}

Maven依赖项:

<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20210307</version>
</dependency>

如果需要以JSON格式打印对象,请使用Jackson库执行以下操作:

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
...
m.put("request", data);
ObjectMapper objectMapper =  new ObjectMapper();
try {
String jsonString = objectMapper.writeValueAsString(m);
System.out.println(jsonString);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
...

最新更新