我正在尝试将POJO类序列化为Amazon XML格式,以汇总服务中的日期。
目标是创建一个类似xml的文件:
<ShipmentEventList>
<ShipmentEvent>
<ShipmentItemList>
<ShipmentItem></ShipmentItem>
</ShipmentItemList>
<AmazonOrderId>AAAA</AmazonOrderId>
<PostedDate>BBBB</PostedDate>
<MarketplaceName>CCCC</MarketplaceName>
<SellerOrderId>DDDD</SellerOrderId>
</ShipmentEvent>
</ShipmentEventList>
这是我的POJO课
ShipmentEventList
public class ShipmentEventList {
@JacksonXmlElementWrapper(localName = "ShipmentEventList")
@JacksonXmlProperty(localName = "ShipmentEvent")
private List<ShipmentEvent> shipmentEventList;
}
ShipmentEvent
@JacksonXmlRootElement(localName = "ShipmentEvent")
public class ShipmentEvent {
@JacksonXmlElementWrapper(localName = "ShipmentItemList")
private List<ShipmentItem> shipmentItemList;
@JacksonXmlProperty(localName = "AmazonOrderId")
private String amazonOrderId;
@JacksonXmlProperty(localName = "PostedDate")
private String postedDate;
@JacksonXmlProperty(localName = "MarketplaceName")
private String marketplaceName;
@JacksonXmlProperty(localName = "SellerOrderId")
private String sellerOrderId;
}
不幸的是,由于序列化,我得到了
<ShipmentEventList>
<ShipmentEventList>
<ShipmentEvent>
<AmazonOrderId>A</AmazonOrderId>
<PostedDate>B</PostedDate>
<MarketplaceName>C</MarketplaceName>
<SellerOrderId>D</SellerOrderId>
</ShipmentEvent>
<ShipmentEvent>
<AmazonOrderId>B</AmazonOrderId>
<PostedDate>C</PostedDate>
<MarketplaceName>D</MarketplaceName>
<SellerOrderId>E</SellerOrderId>
</ShipmentEvent>
</ShipmentEventList>
</ShipmentEventList>
您能解释一下在杰克逊中集合的序列化如何工作吗?
答案 0 :(得分:1)
您需要将useWrapping
标志设置为false
:
class ShipmentEventList {
@JacksonXmlElementWrapper(useWrapping = false)
@JacksonXmlProperty(localName = "ShipmentEvent")
private List<ShipmentEvent> shipmentEventList;
}