我正在尝试在 springmvc 中获取一个方法来接受对象的部分 json 字符串,并让 jackson 自动为我反序列化它。我可以通过制作一个仅包含我想要的属性的临时对象来解决它,或者将其作为字符串传递并使用 Gson 为我反序列化它,但这些感觉很hacky。有没有办法告诉杰克逊怎么做?
这是控制器片段:
@RequestMapping(value = "/task",
method = RequestMethod.POST,
consumes="application/json")
public @ResponseBody String postTask(@RequestBody Task task){
if(task.getId() == null){
task.setId(UUID.randomUUID());
}
if(task.getDate_entered() == 0){
task.setDate_entered(System.currentTimeMillis());
}
TaskDao.addTask(task);
return "success";
}
而任务,一个基本的pojo:
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
public class Task {
private UUID id;
private String name;
private String description;
private long date_entered;
private long finish_by;
public UUID getId() {
return id;
}
public void setId(UUID id) {
this.id = id;
}
// Rest of the getters and setters
}
如果您无法通过我的其他与春季相关的问题来判断,那么我有点盲目,并且无法为这个问题找出正确的谷歌查询。
谢谢!