2011-03-03 3 views
1

JAXB를 사용하여 객체를 마샬링하고 싶습니다. 일부 비즈니스 논리에 따라 일부 필드를 마샬링하고 싶습니다.JAXB Resteasy marshall desired fields

Class Foo{ 
private name; 
private details; 
private url; 

//Getter and setter methods 

}

이 무엇을 달성하고자하는 {이름처럼, 단지 이름과 URL 필드와 JSON 응답을 보낼 수 있습니다 : "someName", URL 예를 들어이 같은 객체를 가지고 : "myUrl"}. 클라이언트가 추가 정보를 검색해야 할 때 URL 필드에서 전송 된 uri를 요청할 수 있고 JAXB는 이번에 details 필드를 마샬링합니다. {name : "someName", url : "myUrl", details : "details"}

나는 래퍼 클래스를 사용할 수 있다는 것을 알고 있지만 같은 데이터 조각에 대한 래퍼 클래스를 작성하는 것은 짜증 스럽다. 그래서 일부 필드를 마샬링하기 위해 JAXB를 구성하는 방법이 있는지 궁금합니다. 고마워.

답변

1

기본적으로 JAXB는 값이있는 속성을 마샬링합니다. 이것은 당신에게 당신이 원하는 행동을 제공해야합니다.

Foo foo = new Foo(); 
foo.setName("Jane Doe"); 
marshaller.marshal(foo, System.out); // results in <foo><name>Jane Doe</name></foo> 
foo.setDetails("Some Details"); 
marshaller.marshal(foo, System.out); // results in <foo><name>Jane Doe</name><details>Some Details</details></foo>