3
JAXB를 사용하여 JAXB를 사용하여 객체를 마샬링합니다. 간단한 객체 인 NameValuePair
을 파스칼 케이스로 보내고 싶습니다. camelCase 래퍼에 싸여있는 것을 제외하고는 모두 작동합니다 (<nameValuePairs>
). 내가 <nameValuePairs>
을 변경할 수있는 방법JAXB - 클래스 콜렉션 용 PascalCase 래퍼
<nameValuePairs>
<NameValuePair>
<Name>A Name</Name>
<Value>1</Value>
</NameValuePair>
<NameValuePair>
<Name>Another Name</Name>
<Value>2</Value>
</NameValuePair>
</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>
에 나머지 스키마와 일치합니까?
감사합니다,이 일했다. 웬일인지 나는 getter를 사용하는 대신'List'를 public으로 만들어야한다. 그렇지 않으면 예외가 생긴다. '@XmlElement' 주석을'List '에 추가해야했습니다. –
shuniar