2017-07-05 85 views
0

任何人都可以幫助我解決這個問題。我有硬編碼的json對象,它被映射到我的POJO,但我在我的Spring控制器中獲得了空值。我檢查了我的getter和setter。他們似乎是正確的。我在這裏做錯了什麼?SpringBoot @RequestBody pojo沒有映射到我的json

控制器

@PostMapping("/dashboard") 
public Dashboard getDashboard(@RequestBody PaginationRequest paginationRequest) { 
     return topcatService.getDashboard(paginationRequest); 
} 

JSON

var paginationRequest = { grouping : e.target.value ,total : "1", currentPage : "1", pageSize : "5"}; 

POJO

public class PaginationRequest { 
     private String grouping; 
     private String total; 
     private String currentPage; 
     private String pageSize; 

     //setter/getter 
    } 
+0

你應該告訴我們什麼不起作用。 – Patrick

+0

PaginationRequest具有空值。 json沒有正確映射到POJO – user4900074

回答

0

我會嘗試提出一些小的變化,

@RequestMapping(value = "/dashboard", method = RequestMethod.POST, 
       consumes = "application/json", produces = "application/json") 
public Dashboard getDashboard(@RequestBody PaginationRequest paginationRequest) { 
+0

剛剛嘗試過。仍然獲得相同的空值。 – user4900074

+0

有沒有解決方法? – Chetan

1

我會說你必須先創建一個有效的json,並測試你的數據是否正確地傳遞到你的控制器。

只是試圖發送一個例子JSON這樣的:

var paginationRequest = '{\"grouping\":\"anyValue\",\"total\":\"1\",\"currentPage\":\"1\",\"pageSize\": \"5\"}'; 

,這意味着你在一個JSON格式只發送一個字符串。

如果你有一個對象,你也許有你的對象轉換爲JSON字符串:

var somejson = JSON.stringify(someobject); 
+0

嘗試過 var paginationRequest ='{\「grouping \」:\「anyValue \」,\「total \」:\「1 \」,\「currentPage \」:\「1 \」,\「pageSize \」 :\「5 \」}' 但似乎不工作 – user4900074

+0

那麼你必須提供更多關於你在做什麼,如何發送json等的信息。 – Patrick

+0

我想通過硬編碼JSON這是paginationRequest(原始代碼中提供)應該被轉換成POJO PaginationRequest.java。 – user4900074

0

使性能公衆和註釋與@JsonProperty(每個屬性)(即@JsonProperty(「分組」)) , 例如。很可能你的getter和setter不遵循標準的命名約定。