【发布时间】:2016-09-08 02:23:56
【问题描述】:
我正在使用一些从 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 注释......但还没有成功:-(
更新:
刚刚意识到 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;
...
【问题讨论】:
-
Product不为空的salesMarkets实例的预期 json 是什么? -
当前输出为:
{ "propertyID": "D7612", "season": "2016", "salesMarkets": { "salesMarket": [ { "brands": { "brand": [ "DAN" ] }, "code": "999" }, { "brands": { "brand": [ "DAN" ] }, "code": "208" } ] } },........ -
我想去掉多余的
"salesMarkets":,据我了解,它来自 Product.class 中的参考
标签: json rest spring-boot jackson