2017-09-05 69 views
1

我想發送POST請求中的嵌套json對象到我的spring REST API。在Post方法中使用Postman發送嵌套的json對象到Spring REST API

對象的Java代碼

public class TestModel { 
private String id; 
private String name; 

public TestModel(String id, String name) { 
    this.id = id; 
    this.name = name; 
} 

public String getId() { 
    return id; 
} 

public String getName() { 
    return name; 
} 

}


在其餘控制器Post方法代碼

@RequestMapping(value = "/helloPost") 
public ResponseEntity<TestModel> helloPost(@RequestBody TestModel t) { 
    return new ResponseEntity<TestModel>(t, HttpStatus.OK); 
} 

我的郵遞員截圖

enter image description here


它返回狀態200確定,對象我發,但它永遠返回400錯誤的請求。 請告訴我我做錯了什麼。當我發送一個字符串時(我的@RequestBody字符串也是),但完全不能與自定義對象一起工作時就沒有問題。

P.S 我已經添加逗號,沒有改變

+0

在測試模型中,請添加默認構造函數並嘗試。另外,添加使用內容類型值作爲應用程序json的註釋。將其設置在請求標題中。 – notionquest

+0

謝謝,它幫了很多 –

+0

問題解決了嗎? – notionquest

回答

1

正如在評論中提到的,請添加TestModel類的默認構造函數。它應該解決問題。

作爲一個額外的步驟,如果Web服務將接受json作爲輸入,然後添加使用內容類型作爲應用程序json的註釋。

2

你錯過了 「」 後JSON id字段。適當的JSON是你的情況將如下: -

{ 
"id" : "1", 
"name" : "test" 
} 
+0

後仍然不能正常工作,沒有變化,狀態400 –

2

這是一個畸形的json你發送到服務器。你需要添加逗號來分隔json中的元素。

即使郵差在左邊顯示錯誤的圖標。

{ 
"id" : 1, 
"name" : "test" 
} 

此外,您還需要在對象模型中添加setter和默認構造函數來設置這些值。

+0

謝謝,但是還是沒有變化 –