簡體   English   中英

發送帶有 JSON 數據 Spring 引導的 POST 請求

[英]Send POST request with JSON data Spring boot

我嘗試使用 Spring 引導以特定格式發送帶有 json 數據的發布請求。 我沒有得到預期格式的數據。 請幫忙解決。 提前致謝。

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 格式打印 object,請使用 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();
            }
    ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM