我有一个名为Customer的课程。
@Entity
@Table(name = "customer")
public class Customer {
@Id
@Column(unique = true)
private String userId;
@Column(unique = true)
private String userName;
private String fullName;
@Column(unique = true)
private String emailAddress;
private String password;
private String country;
@ElementCollection
private Collection<ContactNum> contactNums = new ArrayList<>();
private String district;
private String dateOfBirth;
private String gender;
}
并且有一组联系号码。
@XmlRootElement
@Embeddable
public class ContactNum {
private String landLine;
@Column(unique = true)
private String mobile;
public String getLandLine() {
return landLine;
}
public void setLandLine(String landLine) {
this.landLine = landLine;
}
public String getMobile() {
return mobile;
}
public void setMobile(String mobile) {
this.mobile = mobile;
}
}
我的REST API正在获取一个POST请求JSON对象,其中包含客户和联系号码。
{
"userName": "aaaa",
"fullName": "aaaa",
"emailAddress": "aaaa",
"password": "aaaa",
"country": "aaaa",
"contactNums" : {
"landLine": "0000000000",
"mobile": "0000000000"
},
"district": "aaaa",
"dateOfBirth": "813695400000",
"gender": "aaaa"
}
如何在JAX-RS客户端中映射该请求?获取请求的方法是这样的。我还使用Hibernate作为ORM工具。
@POST
@Path("registerCustomer")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Response registerCustomer(Customer newCustomer) {
}
答案 0 :(得分:0)
如果您正在使用Jackson来处理JSON转换。
但是如果您从
更改JSON输入"contactNums" : {
"landLine": "0000000000",
"mobile": "0000000000"
}
到
"contactNums" : [{
"landLine": "0000000000",
"mobile": "0000000000"
}]
(contactNums从对象更改为对象数组)
这种方式转换应该是开箱即用的。