这是我的对象
public class ServiceGroup {
private String ParticipantIdentifierScheme;
private String ParticipantIdentifierValue;
public void setParticipantIdentifierScheme(String ParticipantIdentifierScheme) {
this.ParticipantIdentifierScheme = ParticipantIdentifierScheme;
}
public String getParticipantIdentifierScheme() {
return ParticipantIdentifierScheme;
}
public void setParticipantIdentifierValue(String ParticipantIdentifierValue) {
this.ParticipantIdentifierValue = ParticipantIdentifierValue;
}
public String getParticipantIdentifierValue() {
return ParticipantIdentifierValue;
}
请求以这种方式处理
@Path("/participants")
@POST
@Consumes(MediaType.APPLICATION_JSON)
public Response addUserToSMP(@HeaderParam("authorization") String authString, ServiceGroup sg) {
return Response.ok().entity(sg).build();
}
我已经放了那个小的响应,以便看看究竟解析了什么。
我的输入应该是这样的
{
"ParticipantIdentifierScheme": "scheme",
"ParticipantIdentifierValue": "value"
}
但输出如下
{
"participantIdentifierScheme": null,
"participantIdentifierValue": null
}
我真正想要的是以某种方式检查输入是否格式正确,并将它们保存在ServiceGroup对象中以供进一步使用
更新
将变量设置为public将返回以下内容
{
"ParticipantIdentifierScheme": "scheme",
"participantIdentifierScheme": "scheme",
"ParticipantIdentifierValue": "value",
"participantIdentifierValue": "value",
}
更新2
@XmlRootElement
public class ServiceGroup {
@XmlElement(name = "ParticipantIdentifierScheme")
private String ParticipantIdentifierScheme;
@XmlElement(name = "ParticipantIdentifierValue")
private String ParticipantIdentifierValue;
我得到了
{
"ParticipantIdentifierScheme": "scheme",
"participantIdentifierScheme": "scheme",
"ParticipantIdentifierValue": "value",
"participantIdentifierValue": "value"
}
答案 0 :(得分:0)
问题是序列化还会查看你的getter方法。您应该只将getter方法注释为元素。它看到了4个不同的值,因为您将大写变量名称作为私有变量,而getter将被视为小写。您还可以使用@XmlAccessorType指定您只想序列化公共成员。
见这里
http://blog.bdoughan.com/2011/06/using-jaxbs-xmlaccessortype-to.html
将变量更改为小写,仅注释getter方法。不要注释setter方法。它会抱怨,因为它是多余的。
@XmlRootElement
public class ServiceGroup {
private String participantIdentifierScheme;
private String participantIdentifierValue;
public void setParticipantIdentifierScheme(String ParticipantIdentifierScheme) {
this.ParticipantIdentifierScheme = ParticipantIdentifierScheme;
}
@XmlElement(name = "ParticipantIdentifierScheme")
public String getParticipantIdentifierScheme() {
return ParticipantIdentifierScheme;
}
public void setParticipantIdentifierValue(String ParticipantIdentifierValue) {
this.ParticipantIdentifierValue = ParticipantIdentifierValue;
}
@XmlElement(name="ParticipantIdentifierValue")
public String getParticipantIdentifierValue() {
return ParticipantIdentifierValue;
}