2017-07-05 57 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不遵循标准的命名约定。