【发布时间】:2017-10-29 00:15:23
【问题描述】:
我已经使用 Spring-Boot 构建了一个 REST 服务。一切正常。但是,当我将 curl 命令更新为 POST POJO 变量的错误名称时,我得到了一个具有默认值的对象。
我的实体看起来像:
@Entity
public class UserTask {
@Id
private Long userId;
private int numComplete;
private int numIncomplete;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public int getNumComplete() {
return numComplete;
}
public void setNumComplete(int numComplete) {
this.numComplete = numComplete;
}
public int getNumIncomplete() {
return numIncomplete;
}
public void setNumIncomplete(int numIncomplete) {
this.numIncomplete = numIncomplete;
}
@Override
public String toString() {
return new StringBuilder("[id : ").append(getUserId())
.append(", complete : ").append(getNumComplete())
.append(", incomplete : ").append(getNumIncomplete())
.append("]").toString();
}
}
我像这样对我的服务执行 POST:
curl -i -X POST -H "Content-Type:application/json" -d "{ \"uId\" : \"1\", \"numC\" : \"3\", \"numI\" : \"2\" }" http://localhost:8080/user-task
POST 的返回状态为201,记录已写入(在本例中为更新)数据库中。当我调试时,我看到传递给 REST 控制器方法的 UserTask 实例具有默认值 null 用于 userId,0 用于 numComplete 和 0 用于 numIncomplete。我认为当 JSON 解析器无法将 POST JSON 内容解组为 UserTask 实例时,它会失败?
【问题讨论】:
标签: json rest jpa spring-boot