【问题标题】:Jackson mapping POST parameters to Java POJO [duplicate]Jackson 将 POST 参数映射到 Java POJO [重复]
【发布时间】:2015-07-01 12:55:18
【问题描述】:

我正在编写一个使用 JSON 并执行一些操作的 Spring RESTful 服务。由于请求包含大量参数,我想到了使用 Spring 的 Jackson 映射将我的请求参数映射到 Java 对象。

我的 POJO

public class RequestInput {

 private int id;
 private String name;
 // parameters follow


 // getter and setter
}

我的控制器

@Controller
public class RequestController{

   @RequestMapping(method=RequestMethod.POST, value="/rest/postRequest")
   public void handleRequest(@RequestBody RequestInput input){
          // code follows
   }

}

当数据发布时一切正常

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

但是当数据发布为

{"id" : 1, "first_name" : "ABCD"}

对象中名称的值返回为NULL

请您帮助我理解如何将请求中的 first_name 映射到 Java POJO 中的名称参数

【问题讨论】:

  • 杰克逊怎么会知道,如果你不告诉它,该怎么做。猜测,“name”和“first_name”应该映射到“name”有点太难了。
  • @ThomasJunk 解决方案由以下 wsl 建议。 JsonProperty 注解通知框架哪个输入键映射到 pojo 中的哪个参数

标签: json spring rest spring-mvc jackson


【解决方案1】:

您可以使用@JsonProperty。注释你的RequestInput 类:

public class RequestInput {
    private int id;
    @JsonProperty("first_name")
    private String name;
}

【讨论】:

  • 谢谢。这有效:-)
  • 如果一切正常,请将其作为已接受的答案进行检查,这将帮助其他有同样问题的人:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多