我正在使用Jackson库将POJO映射到XML。
compile ('com.fasterxml.jackson.dataformat:jackson-dataformat-xml:2.9.0')
我有一个Invoice
类,其中有许多InvoiceLineItem
@NoArgsConstructor
@AllArgsConstructor
@Getter
public class Invoice {
@JacksonXmlProperty(localName = "InvoiceNo")
private String invoiceNumber;
@JacksonXmlProperty(localName = "InvoiceType")
private String invoiceType;
@JacksonXmlProperty(localName = "Line")
@JacksonXmlElementWrapper(useWrapping = false)
private List<InvoiceLineItem> invoiceLineItemList;
}
InvoiceLineItem类类似于
@NoArgsConstructor
@AllArgsConstructor
@Getter
public class InvoiceLineItem {
@JacksonXmlProperty(localName = "ProductDescription")
private String productDescription;
@JacksonXmlProperty(localName = "Quantity")
private BigDecimal quantity;
@JacksonXmlProperty(localName = "UnitPrice")
private BigDecimal unitPrice;
@JacksonXmlProperty(localName = "DebitAmount")
private BigDecimal debitAmount;
@JacksonXmlProperty(localName = "CreditAmount")
private BigDecimal creditAmount;
}
我的目标是根据Invoice类中的invoiceType序列化InvoiceLineItem
例如,如果invoiceType为x
,则creditAmount
中的InvoiceLineItem
字段不应序列化。而如果invoiceType为y
,则debitAmount
中的InvoiceLineItem
字段不应序列化。
我考虑过使用客户序列化程序,但是我需要知道还有其他方法可以序列化此程序。