将XML转换为Object xstream(Android)

时间:2015-09-25 18:52:25

标签: java xml deserialization xstream

我正在寻找通过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生成的。

你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

您的代码应如下所示:

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>

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