【发布时间】:2018-06-07 04:33:42
【问题描述】:
我确实序列化与此示例相同,但列表中没有列表
但不能序列化 xml 以列出如果它在另一个列表中。所有类和 xml 的代码如下:
阅读代码:
PaymentEBillList bills = null;
try {
Serializer serializer = new Persister();
bills = serializer.read(PaymentEBillList.class, output);
} catch (Exception e) {
}
执行代码后票据列表为空
PaymentEBillList 类:
@Root(name="ArrayOfPaymentBill")
public class PaymentEBillList {
@ElementList(required=true, inline=true)
public List<PaymentBill> list = new ArrayList<>();
}
PaymentBill 类:
@Root(name="PaymentBill")
public class PaymentBill {
@Element
public String SerialNumber;
@Element
public String CustomerName;
@Element
public String TotalAmount;
@Element
public EBillList EBill;
public PaymentBill()
{
super();
}
public PaymentBill(String SerialNumber, String CustomerName, String
TotalAmount,EBillList EBill) {
super();
this.SerialNumber = SerialNumber;
this.CustomerName = CustomerName;
this.TotalAmount = TotalAmount;
this.EBill= EBill;
}
}
EBillList 类:
@Root(name="Bill")
public class EBillList {
@ElementList(required=true, inline=true)
public List<EBill> list = new ArrayList<>();
}
电子账单类别:
@Root(name="EBill")
public class EBill
{
@Element
public String NB;
@Element
public String Amount;
public EBill()
{
super();
}
public EBill( String NB,String Amount) {
super();
this.NB = NB;
this.Amount = Amount;
}
}
XML:
<ArrayOfPaymentBill>
<PaymentBill>
<SerialNumber>1</SerialNumber>
<CustomerName>XXX</CustomerName>
<TotalAmount>4500.00</TotalAmount>
<Bill>
<EBill>
<NB>1</NB>
<Amount>2500.00</Amount>
</EBill>
<EBill>
<NB>2</NB>
<Amount>2000.00</Amount>
</EBill>
</Bill>
</PaymentBill>
<PaymentBill>
<SerialNumber>2</SerialNumber>
<CustomerName>YYY</CustomerName>
<TotalAmount>2900.00</TotalAmount>
<Bill>
<EBill>
<NB>1</NB>
<Amount>2900.00</Amount>
</EBill>
</Bill>
</PaymentBill>
</ArrayOfPaymentBill>
任何解决此问题的建议
【问题讨论】:
-
你能指定如何获得
output变量吗?
标签: java android xml serialization xml-serialization