gpt4 book ai didi

java - 使用 XStream 重复元素反序列化

转载 作者:行者123 更新时间:2023-12-01 05:09:08 24 4
gpt4 key购买 nike

当向另一个进程发送消息时,我使用 XStream 1.4.3 在 Java 和 XML 文档之间移动。大多数情况下一切正常。但是,我似乎无法获得一份回复文档来正确反序列化。回复如下:

<AddToBatchResponse>
<MerchantOrderNumber>1525675</MerchantOrderNumber>
<MerchantOrderNumber>1525676</MerchantOrderNumber>
<ResponseReasonCode>100</ResponseReasonCode>
<AuthResponseType>S</AuthResponseType>
</AddToBatchResponse>

当 XStream 到达第二个 MerchantOrderNumber 时,它会给出错误消息“Duplicate field MerchantOrderNumber”。我尝试过不同的设计,但就是行不通。下面是相关的Java代码:

调用类的片段

xstream.alias("AddToBatchResponse", AddToBatchResponse.class);
xstream.alias("MerchantOrderNumber", OrderNumber.class);
xstream.addImplicitCollection(AddToBatchResponse.class, "orderNumbers");
response = (AddToBatchResponse)xstream.fromXML(responseXml);

AddToBatchResponse.java(省略 getter 和 setter)

public class AddToBatchResponse {
protected List<OrderNumber> orderNumbers;
protected String ResponseReasonCode;
protected String AuthResponseType;
...

订单号.java

public class OrderNumber {
protected String MerchantOrderNumber;
...

有人可以告诉我我做错了什么吗?谢谢。

最佳答案

好吧,没有答案 - 所以这就是我所做的:

我使用正则表达式+字符串操作来提取并处理代码中的额外元素。不优雅,不理想,但它有效。如果有人找到这个问题的答案,请分享。

关于java - 使用 XStream 重复元素反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12267127/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com