【问题标题】:SpringBoot @RequestBody pojo not mapping to my jsonSpringBoot @RequestBody pojo 没有映射到我的 json
【发布时间】:2017-07-05 16:36:48
【问题描述】:

谁能帮我解决这个问题。我有硬编码的 json 对象,它应该映射到我的 POJO,但我在我的 Spring 控制器中得到空值。我检查了我的吸气剂和二传手。他们似乎是正确的。我在这里做错了什么?

控制器

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

【问题讨论】:

  • 你应该告诉我们什么不起作用。
  • PaginationRequest 具有空值。 json 没有正确映射到 POJO

标签: javascript java spring-boot


【解决方案1】:

例如,将属性公开并使用 @JsonProperty() (即 @JsonProperty("grouping") )注释每个属性。您的 getter 和 setter 可能不遵循标准命名约定。

【讨论】:

    【解决方案2】:

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

    尝试发送一个这样的示例 json:

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

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

    如果您有一个对象,您可能需要将您的对象转换为 json 字符串:

    var somejson =  JSON.stringify(someobject);
    

    【讨论】:

    • 试过这个 var paginationRequest = '{\"grouping\":\"anyValue\",\"total\":\"1\",\"currentPage\":\"1\" ,\"pageSize\": \"5\"}' 但似乎不起作用
    • 那么你必须提供更多关于你在做什么、如何发送 json 等等的信息。
    • 我正在尝试传递硬编码的 json,它是 paginationRequest(在原始代码中提供),它应该被转换成 POJO PaginationRequest.java。
    • 这个我已经知道了,但是您必须更新您的问题并提供更多代码。
    【解决方案3】:

    我会尝试提出一些小的更改,

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

    【讨论】:

    • 刚刚试过了。仍然得到相同的空值。
    • 有什么解决办法吗?
    猜你喜欢
    • 2019-11-10
    • 1970-01-01
    • 2017-01-31
    • 2017-03-04
    • 1970-01-01
    • 1970-01-01
    • 2017-03-31
    • 2016-10-20
    • 1970-01-01
    相关资源
    最近更新 更多