REST 애플리케이션에서 노출 된 일부 XML을 사용 중이며이를 내 REST 서비스에서 JSON으로 노출하고 싶습니다.
지금 다음 POJO가 있습니다.
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"salesMarket"
})
@XmlRootElement(name = "salesMarkets")
public class SalesMarkets {
protected List<SalesMarket> salesMarket;
public List<SalesMarket> getSalesMarket() {
if (salesMarket == null) {
salesMarket = new ArrayList<SalesMarket>();
}
return this.salesMarket;
}
}
다음 JSON을 생성합니다.
"salesMarkets": {
"salesMarket": [
{
"brands": {
"brand": [
"DAN"
]
},
"code": "999"
},
{
"brands": {
"brand": [
"DAN"
]
},
"code": "208"
}
]
}
내 질문은 (Jackson 주석 사용) 클래스 이름이 JSON으로 직렬화되는 것을 피할 수있는 방법이 있습니까 ??, 그래서 대신 다음과 같이합니다.
"salesMarket": [{
"brands": {
"brand": [
"DAN"
]
},
"code": "999"
}, {
"brands": {
"brand": [
"DAN"
]
},
"code": "208"
}]
나는 SalesMarkets 클래스에 대한 Jackson annotaion을 생각하고 있습니다 ...하지만 아직 성공하지 못했습니다 :-(
최신 정보:
SalesMarket 클래스가 다른 클래스에서 참조된다는 사실을 깨달았습니다. 이것이 "salesMarkets"가 JSON에 나타나는 이유입니다. SalesMarkets 필드에 주석을 달아 무시되지만 여기에 포함 된 필드는 제외되는 방법이 있습니까? :
@XmlRootElement(name = "product")
public class Product {
@XmlElement(required = true)
protected String propertyID;
@XmlElement(required = true)
protected String season;
**protected SalesMarkets salesMarkets;**
protected Information information;
protected Features features;
protected Location location;
protected Address address;
protected Buildings buildings;
protected Pictures pictures;
protected Media media;
protected Prices prices;
protected Offers offers;
protected Availabilities availabilities;
protected Services services;
protected Concepts concepts;
...
제거해야합니다.
@XmlRootElement(name = "salesMarkets")
또는 다음 에서 기능 을 비활성화 하십시오ObjectMapper
.
objectMapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true)
인스턴스 에서 필드 를 추가로 풀기 위해 다음을 수행 할 수 있습니다.salesMarkets
Product
public class Product {
protected SalesMarkets salesMarkets;
public List<SalesMarket> getSalesMarkets(){
if(salesMarkets != null){
return salesMarkets.getSalesMarket();
} else {
return null;
}
}
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다