SpringBoot @RequestBody pojo没有映射到我的json

时间:2017-07-05 16:36:49

标签: javascript java spring-boot

任何人都可以帮我解决这个问题。我有硬编码的json对象,它被映射到我的POJO,但我在Spring Controller中得到了空值。我检查了我的吸气剂和二传手。他们似乎是正确的。我在这做错了什么?

控制器

@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
    }

3 个答案:

答案 0 :(得分:1)

我想说你必须首先创建一个有效的json并测试你的控制器是否正确数据。

试着像这样发送一个json示例:

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

这意味着您只发送一个json格式的字符串。

如果你有一个Object,你可能需要将你的Object转换为json String:

var somejson =  JSON.stringify(someobject);

答案 1 :(得分:1)

将属性设为public并使用@JsonProperty()注释每个属性(例如@JsonProperty(“grouping”))。您的getter和setter可能不遵循标准命名约定。

答案 2 :(得分:0)

我会尝试提出一些小改动,

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