[英]How to get the object from an API REST with Spring MVC
我有一個Spring MVC項目,我已經配置了jackson庫來自動將響應(java對象)轉換為json,並且它可以在GET請求中工作,如下所示。
@RequestMapping(method = RequestMethod.GET)
public @ResponseBody Orders createOrder(Model model){
Orders orders = new Orders();
//Populate orders.....
return orders;
}
但是當我嘗試處理POST請求並從json的請求中獲取對象時,由於Spring無法從json創建對象Orders,我收到了錯誤“ 400 Bad Request”。 我放置了與GET方法響應相同的json文件,因此我認為文件格式正確。
@RequestMapping(method = RequestMethod.POST)
public @ResponseBody ResponseEntity<String> createOrder(@RequestBody Orders orders){
LOG.info(orders.toString());
return new ResponseEntity<String>("", HttpStatus.CREATED);
}
如果我將@RequestBody類更改為String(createOrder(@RequestBody字符串順序)),則POST請求將得到很好的處理。
我是否必須創建一個將輸入json映射到Order類的映射器?
更新:我已經創建了最簡單的示例進行嘗試,並且收到錯誤400。例如:
域:Home.java
public class Home {
private String address = "Calle mármoles";
public Home(){
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
}
控制器:
@RequestMapping(method = RequestMethod.POST)
public @ResponseBody ResponseEntity<String> createOrder2(@RequestBody Home orders){
return new ResponseEntity<String>("{}", HttpStatus.CREATED);
}
JSON(POST):
{
address: "Prueba"
}
[解決了]
我錯過了在參數名稱的名稱中添加“”。
[解決了]
我錯過了在參數名稱的名稱中添加“”。
此外,該類還必須具有默認的空白構造函數,以允許jackson庫創建對象。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.