【问题标题】:Convert XML to Object xstream ( Android )将 XML 转换为对象 xstream (Android)
【发布时间】:2015-09-25 18:52:24
【问题描述】:

我正在寻求通过 XStream 将 xml 转换为对象的帮助,这是我的 XML

<main>
      <listDTO>
          <MyObject>
              <test>value1</test>
          </MyObject>
          <MyObject>
              <test>value2</test>
          </MyObject>

      </listDTO>
</main>

这是我的课程。

public class First{
      MyObject[] listDTO;
}

public class MyObject{
      String test;
}

使用 xstream :

...
XStream xStream = new XStream();
xStream.alias("main",First.class);
xStream.alias("listDTO", MyObject.class);
xStream.addImplicitCollection(First.class,"listDTO");

....

标签&lt;listDTO&gt; 有问题,我无法更改 XML 。这些类是使用 Eclipse 从 wsdl 生成的。

你能帮帮我吗?

【问题讨论】:

    标签: java xml deserialization xstream


    【解决方案1】:

    您的代码应如下所示:

    XStream xStream = new XStream();
    xStream.alias("main", First.class);
    xStream.alias("MyObject", MyObject.class);
    

    首先,您没有隐式集合,而是由listDTO 标签标记的显式集合。使用隐式集合,您的 XML 将是:

    <main>
        <MyObject>
            <test>value1</test>
        </MyObject>
        <MyObject>
            <test>value2</test>
        </MyObject>
    </main>
    

    您犯的第二个错误是为MyObject 类添加listDTO 别名。这应该替换为 MyObject 别名,因为您确实在 XML 中定义了与 MyObject 类相对应的 MyObject 标记。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-02-15
      • 1970-01-01
      • 2014-12-01
      • 1970-01-01
      • 2011-05-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多