伱注定s我的 2019-12-02 20:37 采纳率: 100%
浏览 163
已采纳

XStrea 反序列化 复杂结构

maven引用

<dependency>
            <groupId>com.thoughtworks.xstream</groupId>
            <artifactId>xstream</artifactId>
            <version>1.4.10</version>
</dependency>


@XmlAccessorType(XmlAccessType.FIELD)
@XStreamAlias("GDSPublisherRequest")
@Data
public class GDSPublisherRequest {

    @XStreamAsAttribute
    @XStreamAlias("Profile")
    private String profile;

    @XStreamAlias("FIDELIO_RateUpdateNotifRQ")
    private RateUpdateNotifRQ rateUpdateNotifRQ;

    @XStreamAlias("Properties")
    private List<ChinAoLineProperty> properties;
}

@Data
public class RateUpdateNotifRQ {
    @XStreamAsAttribute
    @XStreamAlias("echoToken")
    private String echoToken;

}

@Data
@XStreamAlias("Property")
public class ChinAoLineProperty {

    @XStreamAsAttribute
    @XStreamAlias("chainCode")
    private String chainCode;

    @XStreamAsAttribute
    @XStreamAlias("hotelCode")
    private String hotelCode;
}


String xml = "<?xml version=\"1.0\" encoding=\"utf-8\"?>\n" +
                "<GDSPublisherRequest  Profile=\"CCM\">\n" +
                    "<FIDELIO_RateUpdateNotifRQ echoToken=\"SSL\">\n" +
                        "<Properties>\n" +
                            "<Property chainCode=\"CCM\" >\n" +
                            "</Property> \n" +
                        "</Properties>\n" +
                    "</FIDELIO_RateUpdateNotifRQ> " +
                "</GDSPublisherRequest>";

        XStream xstream = new XStream(new DomDriver());//创建Xstram对象
        xstream.autodetectAnnotations(true);
        xstream.processAnnotations(GDSPublisherRequest.class);
        GDSPublisherRequest request = (GDSPublisherRequest) xstream.fromXML(xml);
        System.out.println("args = " + xstream.toXML(request));

如上面代码使用XStream ,现在是无法序列化 Properties 和 Property 节点,请各位大哥帮忙看一下,谢谢!!

  • 写回答

2条回答

  • VICTOR_fusheng 2019-12-03 11:36
    关注

    你的private List properties应该在RateUpdateNotifRQ 类里而不是GDSPublisherRequest 类。还有因为别名有下划线_,字符串转类的时候没问题。类转字符串的时候会变成__两个下划线,不注意还看不出来,之前就遇到过这个坑

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 孟德尔随机化结果不一致
  • ¥20 求用stm32f103c6t6在lcd1206上显示Door is open和password:
  • ¥15 apm2.8飞控罗盘bad health,加速度计校准失败
  • ¥15 求解O-S方程的特征值问题给出边界层布拉休斯平行流的中性曲线
  • ¥15 谁有desed数据集呀
  • ¥20 手写数字识别运行c仿真时,程序报错错误代码sim211-100
  • ¥15 关于#hadoop#的问题
  • ¥15 (标签-Python|关键词-socket)
  • ¥15 keil里为什么main.c定义的函数在it.c调用不了
  • ¥50 切换TabTip键盘的输入法