1
我有一個Spring MVC項目,我已經配置了jackson庫來自動將響應(java對象)轉換爲json,並且它在GET請求中工作如下。如何使用Spring MVC從API REST獲取對象
@RequestMapping(method = RequestMethod.GET)
public @ResponseBody Orders createOrder(Model model){
Orders orders = new Orders();
//Populate orders.....
return orders;
}
但是,當我嘗試處理POST請求,並從JSON的請求的對象,我得到錯誤「400錯誤的請求」的春天不能從JSON創建對象的訂單。我把相同的json文件放在GET方法響應中,所以我想這個文件格式很好。
@RequestMapping(method = RequestMethod.POST)
public @ResponseBody ResponseEntity<String> createOrder(@RequestBody Orders orders){
LOG.info(orders.toString());
return new ResponseEntity<String>("", HttpStatus.CREATED);
}
如果我改變@RequestBody類字符串(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"
}
[求助]
我錯過了放在參數名稱的名稱。
你如何稱呼你的發佈方法?請求的主體是否僅包含來自GET的json? – Avi
是的,身體只有JSON。 –
這可能是最好的,你把你的解決方案作爲答案,以便A)這個問題被正確標記爲正在解決和B)對於將來可能有類似問題的其他人來說很明顯,你的情況出了什麼問題。 – Edd