java-JAXB-用于类集合的PascalCase包装器
作者:互联网
我正在使用JAXB编写用于封送对象的JAX-RS.我有一个简单的对象NameValuePair,我想在PascalCase中发送.一切工作正常,只不过将其包装在camelCase包装器< nameValuePairs>中.
这是我的课:
@XmlRootElement(name = "NameValuePair")
public class NameValuePair implements Serializable {
private String name = null;
private String value = null;
public NameValuePair( String name, String value ) {
this.name = name;
this.value = value;
}
@XmlElement(name = "Name")
public String getName() {
return name;
}
@XmlElement(name = "Value")
public String getValue() {
return value;
}
}
使用方法如下:
public Response getNameValuePairs() {
NameValuePair[] nameValuePairs;
try {
nameValuePairs = manager.getNameValuePairs();
} catch (Exception e) {
return Response
.status(Response.Status.INTERNAL_SERVER_ERROR)
.build();
}
return Response
.status(Response.Status.OK)
.entity(nameValuePairs)
.build();
}
但是,返回的XML如下所示:
<nameValuePairs>
<NameValuePair>
<Name>A Name</Name>
<Value>1</Value>
</NameValuePair>
<NameValuePair>
<Name>Another Name</Name>
<Value>2</Value>
</NameValuePair>
</nameValuePairs>
如何更改< nameValuePairs>到< NameValuePairs>与其他模式匹配?
解决方法:
数组名称似乎用于XML的根节点.对我来说,最简单的方法似乎是将您的实体包装在一个List中:
@XmlRootElement(name="NameValuePairs")
public class NameValuePairs {
List<NameValuePair> nameValuePairs;
}
并返回:
public Response getNameValuePairs() {
return Response
.entity(new NameValuePairs(...))
.build();
}
标签:jax-rs,jaxb,xml,java 来源: https://codeday.me/bug/20191031/1978377.html