将 XML 转换为对象 xstream ( Android )

Convert XML to Object xstream ( Android )

我正在寻求有关通过 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");

....

标签 <listDTO> 有问题,我无法更改 XML 。 类 是使用 Eclipse 从 wsdl 生成的。

你能帮帮我吗?

您的代码应如下所示:

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 class 添加了 listDTO 别名。这应该替换为 MyObject 别名,因为您确实在 XML 中定义了 MyObject 标签,对应于 MyObject class.