以下是對我的端點的 POST 請求的正文 -
{
"availabilityMap":
{
"2021-07-18":["9AM-10AM", "OT"],
"2021-07-19":["9AM-10AM", "OPD"],
.
.
}
}
以下是我的控制器的骨架 -
@PostMapping(value = "/appointment", consumes = MediaType.APPLICATION_JSON_VALUE,
produces= MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity newAppointment(@RequestBody /* WHAT TO PUT HERE?*/) {
}
有人可以幫我定義一個物體,以便 @RequestBody 自動轉換為物體嗎?那可能嗎?
我已經嘗試遵循一些 SO 建議,但還沒有弄清楚..
uj5u.com熱心網友回復:
通常,我們為請求和回應準備 dto 或資源。如果您的請求或回應與資料庫相關,則應為 dto,否則應將其標記為資源,并且可以使用 MapStruct 執行自動映射操作。
@Data
public class RequestDto {
public Map<String, List<String>> availabilityMap;
}
uj5u.com熱心網友回復:
public class RequestVO {
public Map<String, List<String>> availabilityMap;
public Map<String, List<String>> getAvailabilityMap() {
return availabilityMap;
}
public void setAvailabilityMap(Map<String, List<String>> availabilityMap) {
this.availabilityMap = availabilityMap;
}
}
{}可以表示為物件或映射,[]也可以表示為Collection的實作類。(常用的有List和Set,也是介面,具體的類由序號框架指定,也可以使用HashMap等實作類。)對于{},使用物件還是map取決于欄位是否固定或不。在示例中,availabilityMap是一個固定名稱的欄位,因此使用了物件。2021-07-18是不定日期或其他類別,因此請使用 Map。對于一個物件,如果它的欄位是另一個物件,你可能需要撰寫一個新的java類。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/427030.html
