Lar*_*ist 4 rest json jackson spring-boot
我正在使用从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;
}
}
Run Code Online (Sandbox Code Playgroud)
哪个产生以下JSON:
"salesMarkets": {
"salesMarket": [
{
"brands": {
"brand": [
"DAN"
]
},
"code": "999"
},
{
"brands": {
"brand": [
"DAN"
]
},
"code": "208"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我的问题是(使用杰克逊注释),有没有办法避免类名被序列化为JSON ??所以我反而会:
"salesMarket": [{
"brands": {
"brand": [
"DAN"
]
},
"code": "999"
}, {
"brands": {
"brand": [
"DAN"
]
},
"code": "208"
}]
Run Code Online (Sandbox Code Playgroud)
我正在考虑杰克逊在SalesMarkets上的一些注释......但是还没有成功:-(
更新:
刚刚意识到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;
...
Run Code Online (Sandbox Code Playgroud)
你需要删除
@XmlRootElement(name = "salesMarkets")
Run Code Online (Sandbox Code Playgroud)
或禁用该功能上ObjectMapper:
objectMapper.configure(SerializationConfig.Feature.WRAP_ROOT_VALUE, true)
Run Code Online (Sandbox Code Playgroud)
要在实例中进一步展开 salesMarkets字段,Product您可以执行以下操作:
public class Product {
protected SalesMarkets salesMarkets;
public List<SalesMarket> getSalesMarkets(){
if(salesMarkets != null){
return salesMarkets.getSalesMarket();
} else {
return null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
672 次 |
| 最近记录: |