(1).先看看XML内容
Java
<postsalescreateResponse
xmlns="http://tempurl.org">
<postsalescreateResult>
<header>
<responsecode>1000</responsecode>
<responsemessage>[A00001-01-PS230925-2566-000009] PostSalesCreate - Sales doc. already exists.[20230925,A00001,01,PS230925-2566-000009]</responsemessage>
</header>
<salestotal>
<txdate_yyyymmdd>20230925</txdate_yyyymmdd>
<txtime_hhmmss>175607</txtime_hhmmss>
</salestotal>
</postsalescreateResult>
</postsalescreateResponse>
(2).查看实体类1:postsalescreateResponse
Java
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "postsalescreateResponse", namespace = "http://tempurl.org", propOrder = {
"postsalescreateResult"
})
public class PostsalescreateResponse {
@XmlElement(name = "postsalescreateResult")
private PostsalescreateResult postsalescreateResult;
--- getTer Or setTer
}
(3).查看实体类2:postsalescreateResult
Java
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "postsalescreateResult", propOrder = {
"header",
"salestotal"
})
public class PostsalescreateResult {
@XmlElement(name = "header")
protected Header header;
@XmlElement(name = "salestotal")
private Salestotal salestotal;
--- getTer Or setTer
}
然后我获取到的PostsalescreateResult节点永远是null,之前通过序列化这样生成xml都是可以的,但是反序列化一直不可以,折腾太久了,最后在Google中查看到1个答案,反序列化的时候xml的命名空间namespace不支持继承,在反序列化的时候必须给每个子节点设置这个命名空间。我们完善下子节点的命名空间即可,例如:
Java
@XmlElement(name = "header", namespace = "http://tempurl.org")
protected Header header;
@XmlElement(name = "salestotal", namespace = "http://tempurl.org")
private Salestotal salestotal;
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有