我正在寻找通过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生成的。
你能帮助我吗?
答案 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
标记。